Excelのマクロを使用している場合に頻繁にやらなければならないことの一つに
「データが入力されている最大行番号や最大列番号を取得する」
ということがあると思います。
この場合、上から順番にチェックしていき、データがなくなった時が最大行番号とすると、途中で空欄がある場合などにうまく最大行が取得できないことがあります。
そのような場合には、逆にExcelの最大行、最大列側からさかのぼってチェックして、はじめてデータがあらわれたところを最大とするやり方があります。
これに関しては、1行程度の記載で簡単に求められます。
たとえば、以下のようなコードになります。
RowMax = Cells(Rows.Count, 1).End(xlUp).Row
この例の場合には、
「1列目に関して、最大行からさかのぼってはじめにデータがあらわれた行番号をRowMaxに代入する」
という内容になります。
同様に、最大列番号を求めるコードには、以下のような例があります。
ColMax = Cells(2, Columns.Count).End(xlToLeft).Column
この場合は、
「2行目に関して、最大列からさかのぼってはじめにデータがあらわれた列番号をColMaxに代入する」
という内容になります。
たとえば、以下のような表があった場合には、
以下のようなコードを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 備忘録
Microsoft EdgeでのInternet Explorerモード設定手順 - Django Girls and Boys 備忘録
【Excel】プルダウンリストの設定方法 - Django Girls and Boys 備忘録
【Excel】ボタンの表示文字を改行する方法 - Django Girls and Boys 備忘録
【Excel】プルダウンリスト 設定方法、元データ追加方法、元データ変更方法 - Django Girls and Boys 備忘録
はてなブログの見たままモードの記事へのプログラムコード挿入方法 - Django Girls and Boys 備忘録
Google Chromeの右下の迷惑な広告、ウイルス侵入メッセージを消す方法(削除方法) - Django Girls and Boys 備忘録
【Googleサーチコンソール Googleアナリティクスの登録方法】サイト作成後の分析、活用に欠かせない登録 - 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 備忘録