Excel

【Excel】VBAマクロでアクティブセルの位置を取得し、選択セルから指定位置の取得も行う方法【Range, Cells, Offset】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロでアクティブセルの位置を取得し、選択セルから指定位置の取得も行う方法【Range, Cells, Offset】について解説していきます。

ポイントとしては`Range`, `Cells`, `Offset`関数の使用になります。

マクロ初心者でも理解しやすいように、変数名を`aaaaa変数aaaaa`という形で示しています。実際の使用時には、これらをより具体的かつ適切な名称に置き換えてご利用ください。

それでは詳しく見ていきましょう!

 

VBAマクロでアクティブセルの位置(セル番地)を取得し、選択セルの位置情報をokシートに追記していく

それではまず、アクティブセル(選択しているセル)の位置を取得して、その情報を別のEシートに追記する方法について解説していきます。

この処理によって、セルを選択するたびに、そのセルの位置情報がリアルタイムで記録されるようになるので便利です!

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub aaaaa記録aaaaa()
    Dim aaaaa選択セルaaaaa As Range
    Set aaaaa選択セルaaaaa = ActiveCell
    Dim aaaaa行aaaaa As Long
    aaaaa行aaaaa = Sheets("ok").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("ok").Cells(aaaaa行aaaaa, 1).Value = aaaaa選択セルaaaaa.Address
End Sub

コードのAlt+F8を押し、マクロ選択画面でaaaaa記録aaaaa関数を実行します。

このコードは、現在選択されているセルのアドレス(位置情報)を`ok`シートの最後の行に追加していくものです。

`aaaaa行aaaaa`変数は`ok`シートの空白行を探し、そこにアクティブセルのセル番地(アドレス)を記録します。

 

VBAマクロでアクティブセルから指定位置(相対位置)の値を取得する方法、インプットボックスで指定位置を入力

続いては、アクティブセルから相対的に位置を指定して、そのセルの値を取得する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub aaaaa値取得aaaaa()
    Dim aaaaa行移動aaaaa As Integer
    Dim aaaaa列移動aaaaa As Integer
    aaaaa行移動aaaaa = InputBox("行の移動量を入力してください(上に移動する場合はマイナス)")
    aaaaa列移動aaaaa = InputBox("列の移動量を入力してください(左に移動する場合はマイナス)")
    Dim aaaaa指定セルaaaaa As Range
    Set aaaaa指定セルaaaaa = ActiveCell

.Offset(aaaaa行移動aaaaa, aaaaa列移動aaaaa)
    MsgBox "指定されたセルの値: " & aaaaa指定セルaaaaa.Value
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でaaaaa値取得aaaaa関数を実行します。

このコードでは、ユーザーによって入力された行と列の移動量を基に、アクティブセルから相対位置にあるセルを特定し、そのセルの値をメッセージボックスで表示します。

`Offset`メソッドを使用していますが、これは現在のセルから指定された行数と列数だけ離れたセルを参照するためのものです。この機能によって、複雑なデータ構造内でも柔軟に情報を取得できるようになります。

 

まとめ VBAマクロで選択セルの位置(番地・座標)を取得し、選択セルから指定位置の取得も行う方法【Range, Cells, Offset】

ここでは、VBAマクロでアクティブセルの位置を取得し、選択セルから指定位置の取得も行う方法【Range, Cells, Offset】について確認しました。

マクロの扱いに慣れ、さらに快適な生活を送っていきましょう(^^)/