【ExcelVBA】セルの位置を取得する Row & Column

こんなあなたにおすすめ

・Excel VBAでセルの位置を取得したい

Excel VBAを使っていると、セルの位置を取得したいということがあります。

今回は、セルの位置(行、列)を取得する方法について解説します。

セルの位置以外に、選択やアクティブしたいという方は、下記の記事が参考になります。
>>【ExcelVBA】セルの選択&アクティベート Select & Activateの使い方

指定セルの位置を取得する

指定したセルの行を取得するには、
(1) Range(“セル”).Row
(2) Cells(行, 列).Row

セル名を絶対参照したい場合は、
(1) Range(“セル”).Address
(2) Cells(行, 列).Address

を使えば取得できます。

実際にコードを見ていきましょう。

指定セルの行、列を取得する

Sub test1()

    Dim r As Long
    Dim c As Long
    
    r = Range("C2").Row
    c = Range("C2").Column
    
    Debug.Print "行:" & r & ", 列:" & c  '行:2, 列:3

End Sub

指定セル名を絶対参照で取得する

Sub test2()

    Dim a As String
    
    a = Range("C2").Address
    
    Debug.Print a   '$C$2
    
End Sub

アクティブセルの位置を取得する

アクティブセルの行を取得するには、
ActiveCell.Row

アクティブセルの列を取得するには、
ActiveCell.Column

アクティブセル名を絶対参照したい場合は、
ActiveCell.Address

を使えば取得できます。

実際にコードを見ていきましょう。

アクティブセルの行、列を取得する

Sub test3()

    Dim r As Long
    Dim c As Long
    
    r = ActiveCell.Row
    c = ActiveCell.Column
    
    Debug.Print "行:" & r & ", 列:" & c  '行:2, 列:3

End Sub

アクティブセル名を絶対参照で取得する

アクティブセルが”C2″の場合、プログラムを実行すると、”$C$2″が出力されます。

Sub test4()

    Dim a As String
    
    a = ActiveCell.Address
    
    Debug.Print a   '$C$2

End Sub

選択セルの位置を取得する

選択セルの行を取得するには、
Selection.Row

選択セルの列を取得するには、
Selection.Column

選択セル名を絶対参照したい場合は、
Selection.Address

を使えば取得できます。

実際にコードを見ていきましょう。

選択セルの行、列を取得する

Sub test5()

    Dim r As Long
    Dim c As Long
    
    r = Selection.Row
    c = Selection.Column
    
    Debug.Print "行:" & r & ", 列:" & c  '行:2, 列:3

End Sub

選択セル名を絶対参照で取得する

選択セルが”C2″の場合、プログラムを実行すると、”$C$2″が出力されます。

Sub test6()

    Dim a As String
    
    a = Selection.Address
    
    Debug.Print a   '$C$2

End Sub

範囲の開始行、開始列、行数、列数を取得する

指定範囲

Sub test7()

    Dim r As Long
    Dim rCnt As Long
    Dim c As Long
    Dim cCnt As Long
    
    r = Range("A1:C3").Row              '範囲の左上の行を取得する
    rCnt = Range("A1:C3").Rows.Count    '範囲の行数を取得する
    c = Range("A1:C3").Column           '範囲の左上の列を取得する
    cCnt = Range("A1:C3").Columns.Count '範囲の列数を取得する
    
    '行:1, 行数:3, 列:1, 列数:3
    Debug.Print "行:" & r & ", 行数:" & rCnt & ", 列:" & c & ", 列数:" & cCnt

End Sub

選択範囲

Sub test8()

    Dim r As Long
    Dim rCnt As Long
    Dim c As Long
    Dim cCnt As Long
    
    r = Selection.Row              '範囲の左上の行を取得する
    rCnt = Selection.Rows.Count    '範囲の行数を取得する
    c = Selection.Column           '範囲の左上の列を取得する
    cCnt = Selection.Columns.Count '範囲の列数を取得する
    
    '行:1, 行数:3, 列:1, 列数:3
    Debug.Print "行:" & r & ", 行数:" & rCnt & ", 列:" & c & ", 列数:" & cCnt

End Sub

まとめ

ここまで、セルの位置を取得する方法について解説しました。

Rowsプロパティで行数、Columnプロパティで列数を簡単に取得できます。

セル位置を取得できると便利ですので、ぜひ使ってみてください。

セルの選択、アクティベートについては、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】セルの選択&アクティベート Select & Activateの使い方

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

2 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です