エクセルバージョン
マイクロソフト365
本日はVBAで列番号と列数が取得できるColumnとColumns.Countについてです。
それではいってみましょう!
Menu
Column(列番号)
概要
RangeオブジェクトのColumnプロパティで指定範囲の最初の列番号を、数値(Long)で返します。
Columnサンプル
A1セルの列番号
1 2 3 4 | Sub column_sample1() 'A1の列番号を取得 Debug.Print Range("A1").Column '【結果】1 End Sub |
C10セルの列番号
1 2 3 4 | Sub column_sample2() 'C10の列番号を取得 Debug.Print Range("C10").Column '【結果】3 End Sub |
B3~C5セルの列番号
1 2 3 4 | Sub column_sample3() 'B3~C5の列番号を取得(1番左の列番号) Debug.Print Range("B3:C5").Column '【結果】2 End Sub |
現在選択中のセルの列番号(Selectionの場合)
ApplicationオブジェクトのSelectionプロパティの使用例。
D5セルが選択中だとしたら。
1 2 3 4 5 6 7 8 9 10 | Sub column_sample4() '現在選択しているセルの行番号(D5セルが選択されてたら) 'ApplicationオブジェクトのSelectionプロパティは選択セルのRangeオブジェクトを返します。 'RangeオブジェクトのColumnプロパティで取得できます。 Debug.Print Application.Selection.Column '【結果】4 'Applicationオブジェクトの記述は省略できます。 Debug.Print Selection.Column '【結果】4 End Sub |
Columns.Count(列数)
概要
・RangeオブジェクトのColumnsプロパティで指定範囲の列のRangeオブジェクトを返します。
・ColumnsプロパティはRangeオブジェクトを返すので、RangeオブジェクトのCountプロパティを使用すると列数が取得できます。
Columns.Countサンプル
A10セルの列数
1 2 3 4 | Sub columns_sample1() 'A10の列数を取得 Debug.Print Range("A10").Columns.Count '【結果】1 End Sub |
A1~C10セルの列数
1 2 3 4 | Sub columns_sample2() 'A1~C10の列数を取得 Debug.Print Range("A1:C10").Columns.Count '【結果】3 End Sub |
シートの全列数
1 2 3 4 | Sub columns_sample3() '1行目の全列数を取得 Debug.Print Range("1:1").Columns.Count '【結果】16384 End Sub |
現在選択中の列数
ApplicationオブジェクトのSelectionプロパティを使用します。
例えばA1~F5セルを選択中だったら。
1 2 3 4 5 6 7 8 9 | Sub columns_sample4() '現在の選択範囲がA1~F5セルだったら。 'ApplicationオブジェクトのSelectionプロパティは選択セルのRangeオブジェクトを返します。 'RangeオブジェクトのCountプロパティで取得できます。 Debug.Print Application.Selection.Columns.Count '【結果】6 'Applicationオブジェクトの記述は省略できます。 Debug.Print Selection.Columns.Count '【結果】6 End Sub |
まとめ
最初にRangeとかCellsなどで範囲指定して、!
. ←ピリオド入力後、
列番号なら → Column
列数なら → Columns.Count
だけなのでそんなに難しくはないですよね(*^^)v
ついでに行番号と行数も簡単なので覚えちゃいましょう。
【VBA】行番号(Row)と行数(Rows.Count)を取得
以上です。
一番下の(最終行)行番号取得
一番下の行(最終行)の値を取得
行番号と行数や列番号と列数の取得
【VBA】列番号と列数(ColumnとColumns.Count)
関連記事
【PowerAutomate】エクセルの最終行番号を自動取得