エクセルマクロVBA:セルの操作
エクセルのちょっとしたテクニックを紹介します。
エクセルでVBAを使用してコードを書く時、よく使うのが、データの端の行や列を取得するコードです。データの端の行や列を取得することで、データ数が変わっても処理ができるようになります。
・最終行(データの一番下の行番号)を取得する場合
Cells(Rows.Count, 1).End(xlUp).Row
※A列の最終行を取得します。セルの下端から上方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることでA列以外の列の最終行を取得できます。
・最終列(データの一番右の列番号)を取得する場合
Cells(1, Columns.Count).End(xlToLeft).Column
※1行目の右端の列を取得します。セルの右端から左方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで指定した行の右端の列を取得できます。
・最初の行(データの一番上の行番号)を取得する場合
Cells(1, 1).End(xlDown).Row
※セルA1から下方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることで開始するセルを変更できます。
・最初の列(データの一番左の列番号)を取得する場合
Cells(1, 1).End(xlToRight).Column
※セルA1から右方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで開始するセルを変更できます。
セルにいくつかデータを入力し、以下のサンプルコードで試してみてくださいね。
Sub Test1()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
a = Cells(Rows.Count, 1).End(xlUp).Row
b = Cells(1, Columns.Count).End(xlToLeft).Column
c = Cells(1, 1).End(xlDown).Row
d = Cells(1, 1).End(xlToRight).Column
MsgBox "最終行は、" & a & vbCrLf & "最終列は、" & b _
& vbCrLf & "セルA1から下へ向かって最初の行は、" & c _
& vbCrLf & "セルA1から右へ向かって最初の列は、" & d
End Sub
※手作業で行う場合は、ショートカットキー3@エクセルまたは、データの端へ移動する@エクセルという方法もあります。
エクセルでVBAを使用してコードを書く時、よく使うのが、データの端の行や列を取得するコードです。データの端の行や列を取得することで、データ数が変わっても処理ができるようになります。
・最終行(データの一番下の行番号)を取得する場合
Cells(Rows.Count, 1).End(xlUp).Row
※A列の最終行を取得します。セルの下端から上方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることでA列以外の列の最終行を取得できます。
・最終列(データの一番右の列番号)を取得する場合
Cells(1, Columns.Count).End(xlToLeft).Column
※1行目の右端の列を取得します。セルの右端から左方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで指定した行の右端の列を取得できます。
・最初の行(データの一番上の行番号)を取得する場合
Cells(1, 1).End(xlDown).Row
※セルA1から下方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることで開始するセルを変更できます。
・最初の列(データの一番左の列番号)を取得する場合
Cells(1, 1).End(xlToRight).Column
※セルA1から右方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで開始するセルを変更できます。
セルにいくつかデータを入力し、以下のサンプルコードで試してみてくださいね。
Sub Test1()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
a = Cells(Rows.Count, 1).End(xlUp).Row
b = Cells(1, Columns.Count).End(xlToLeft).Column
c = Cells(1, 1).End(xlDown).Row
d = Cells(1, 1).End(xlToRight).Column
MsgBox "最終行は、" & a & vbCrLf & "最終列は、" & b _
& vbCrLf & "セルA1から下へ向かって最初の行は、" & c _
& vbCrLf & "セルA1から右へ向かって最初の列は、" & d
End Sub
※手作業で行う場合は、ショートカットキー3@エクセルまたは、データの端へ移動する@エクセルという方法もあります。
トラックバックURL
この記事にコメントする



