Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel マクロ(VBA)】最大行番号、最大列番号を取得する方法


Excelのマクロを使用している場合に頻繁にやらなければならないことの一つに

データが入力されている最大行番号や最大列番号を取得する

ということがあると思います。

 

この場合、上から順番にチェックしていき、データがなくなった時が最大行番号とすると、途中で空欄がある場合などにうまく最大行が取得できないことがあります。

 

そのような場合には、逆にExcelの最大行、最大列側からさかのぼってチェックして、はじめてデータがあらわれたところを最大とするやり方があります。

 

 

 

目次

 

1.最大行番号、最大列番号を取得する方法

 

これに関しては、1行程度の記載で簡単に求められます。

 

たとえば、以下のようなコードになります。

 

RowMax = Cells(Rows.Count, 1).End(xlUp).Row

 

この例の場合には、

 

「1列目に関して、最大行からさかのぼってはじめにデータがあらわれた行番号をRowMaxに代入する」

 

という内容になります。

 

同様に、最大列番号を求めるコードには、以下のような例があります。

 

ColMax = Cells(2, Columns.Count).End(xlToLeft).Column

 

この場合は、

 

「2行目に関して、最大列からさかのぼってはじめにデータがあらわれた列番号をColMaxに代入する」

 

という内容になります。

 

2.実施例

 

たとえば、以下のような表があった場合には、

 

テスト結果

テスト結果

 

以下のようなコードをVBAで記載することで、

3行目からデータの最大行まで、途中で空欄行があった場合も処理記載の内容の処理を継続してさせることができます(途中、空欄行の処理は何かしら必要になると思いますが)。

 

Sub Test()
 
'最大行数
RowMax = Cells(Rows.Count, 2).End(xlUp).Row
'最大列数
ColMax = Cells(2, Columns.Count).End(xlToLeft).Column

For i = 3 To RowMax
    '処理記載
Next i

End Sub

 

また、上記の表のように空欄行や空欄列がなかった場合になりますが、以下のようなコードを記載することで、生徒数、科目数を求めることができます。

 

このフォーマットのまま、生徒が下方向、科目が右方向に追加されたり、削除されたりていってもこのコードのままで対応できると思います。

 

Sub Test()
 
'最大行数
RowMax = Cells(Rows.Count, 2).End(xlUp).Row
'最大列数
ColMax = Cells(2, Columns.Count).End(xlToLeft).Column
'生徒数、科目数
生徒数 = RowMax - 2
科目数 = ColMax - 2

End Sub

 

 

 

 

関連記事:

【Excel】の「開発」タブを表示させる方法 - Django Girls and Boys 備忘録

 

【Excel】プルダウンリストの設定方法 - Django Girls and Boys 備忘録

 

【Excel】ボタンの表示文字を改行する方法 - Django Girls and Boys 備忘録

 

【Excel】プルダウンリスト 設定方法、元データ追加方法、元データ変更方法 - Django Girls and Boys 備忘録

 

【Excel 名前の定義】「名前"○○○"は既に存在します。この名前にする・・・」のメッセージ表示を解決する方法 - Django Girls and Boys 備忘録

 

【Excel マクロ(VBA) 行削除】条件を満たした行を削除する方法(For~Next文を使用) - Django Girls and Boys 備忘録

 

【Excel マクロ(VBA)】最大行番号、最大列番号を取得する方法 - Django Girls and Boys 備忘録

 

【ExcelマクロからのI.E.操作】I.E.のセキュリティに絡むエラー(オートメーションエラー)発生時の対応方法 - Django Girls and Boys 備忘録

 

【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法 - Django Girls and Boys 備忘録

 

【Excel VBA】シート削除時などに確認メッセージを表示しない方法 - Django Girls and Boys 備忘録

 

【Excel】数式の計算方法について、計算方法の自動/手動変更方法 - Django Girls and Boys 備忘録