この記事では
・最終列を取得する方法
を記載します!
最終列の取得方法は
①左から右へ見ていく方法
②右から左へ見ていく方法
の2つがあります!
基本は「①左から右へ見ていく方法」を
使用すれば良いです!
「①左から右へ見ていく方法」で上手くいかない場合に、
「②右から左へ見ていく方法」を使用します!
前提
ここでは例として、
・シート「sample」の2行目(見出し)の
・最終列(5列目)を取得
します。
最終列を取得する(①左から右へ見ていく)
起点となるセル(開始行と開始列)は決まっていることが多いと思います。
ここでは起点をセル「B2」にするために、
・開始行を定数「START_ROW」で「2」
・開始列を定数「START_COLUMN」で「2」
と定義します。
Option Explicit
Sub sample()
'開始行と開始列を指定
Const START_ROW As Long = 2
Const START_COLUMN As Long = 2
Dim lastColumn As Long
'最終列を取得する(左から右へ見ていく)
lastColumn = Worksheets("sample").Cells(START_ROW, START_COLUMN).End(xlToRight).Column
MsgBox ("最終列は『" & lastColumn & "』列目です!")
End Sub
上記を実行すると、最終列が取得できたことを確認できます。
最終列を取得する(②右から左へ見ていく)
空白列がある場合、「右から左へ見ていく方法」では最終列を取得することが出来ません。
空白列がある場合は、「右から左へ見ていく方法」で最終列を取得します。
「開始行」は同様に定数「START_ROW」で「2」と定義します。
Option Explicit
Sub sample()
'開始行を指定
Const START_ROW As Long = 2
Dim lastColumn As Long
'最終列を取得する(右から左へ見ていく)
lastColumn = Worksheets("sample").Cells(START_ROW, Columns.COUNT).End(xlToLeft).COLUMN
MsgBox ("最終列は『" & lastColumn & "』列目です!")
End Sub
上記を実行すると、最終列が取得できたことを確認できます。
ここでの「右から~」とは「最大列数(=16,384から~)」という意味です。
参考①
以下の記事で、最終行を取得する方法を紹介しています。
あわせてご確認ください。
参考②
上記のVBAコード使用した以下の詳細は、公式サイトをご確認ください。
●「Worksheets(“シート名”).Cells(”XXX”)」
●「Rangeオブジェクト」の「Endプロパティ」
●「Rangeオブジェクト」の「Columnプロパティ」