MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【VBA】最終行、最終列の取得
profile-img
投稿者: Nakamaさん
投稿日:2020/05/28 16:55
更新日:
like-img
分類
技術
テクノロジー
その他
キャリア
運用・保守
投稿内容

今回はExcelVBAでの最終行、最終列の取得方法についてご紹介します。

 

このコマンドは、月次、週次といった出力数が決まっていないデータおいて、VBAで繰り返し処理をするときなどにとても便利です。以下の表で説明していきます。


 

Excelで最終行に手動で移動したい場合は、B7セルがアクティブな状態で「Ctrl + ↓」を入力すると、B18セルに移動できます。

同様に最終列に手動で移動したい場合は、B7セルがアクティブな状態で「Ctrl + →」を入力すると、D7セルに移動できます。

ただし、データの欠損などで途中にブランクが生じた場合には、ブランクのあるセルまでしか移動することができないので注意が必要です。

この移動をマクロで書くと、

 最終行:Cells(7, 2).End(xlDown).Row

 最終列:Cells(7, 2).End(xlToRight).Column

となります。

 

これでは、途中にブランクがある場合は正しく最終セルを取得できない為、その場合は、シートの「最終行から上」、「最終列から左」に移動する方法で最終セルを取得します。

 

この移動をマクロで書くと、

 最終行:Cells(Rows.Count, 3).End(xlUp).Row

 最終列:Cells(8, Columns.Count).End(xlToLeft).Column

となります。

 

Rows.Count」はシートの最終行を表しています。(2007以降の最終行は1048576)

Columns.Count」はシートの最終列を表しています。(2007以降の最終列は16384)

 

これを使って最終行、最終列を取得すると月次データなどの出力数が異なる場合にも正しく最終行、最終列が取得できます。

(③およびCのセル取得処理)  


 

以上、ExcelVBAでの最終行、最終列の取得方法についてでした。

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3