【EXCEL VBA】アクティブセルの位置を取得するには?

訪問して頂きありがとうございます。まさふくろーです。

今回は、アクティブセルの位置を取得する方法をご紹介します。

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

作成手順

「開発」タブの確認

リボンに「開発」タブが表示されているかの確認をします。

 

 

「開発」タブが表示されていない場合は、「開発タブの表示」をご覧ください。

ボタンの作成

①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

 

 

シート上にカーソルを移動すると、ポインターが「+」の状態になります。

 

 

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

 

 

すると、「マクロの登録」画面が表示されます。

 

 

①「マクロ名」を「アクティブセル取得」に変更⇒②「新規作成」ボタンをクリックします。

 

 

MEMO
マクロ名は、どんな名前にしても問題ありませんが、処理と関係ある名前にしたほうが、コードを見る際にわかりやすいです。

 

すると、自動的にVBE(Visual Basic Editor)が起動します。

 

VBAコードの入力

VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

 

 

入力するコードは以下になります。

ボタンの名前を変更する

エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。

 

 

右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。

 

ボタンの名前を変更します。

VBAコードの保存

「ファイル」タブをクリックします。

 

 

「名前を付けて保存」を選択し、ファイル保存画面を起動します。

 

 

①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。

 

解説

ActiveCellプロパティ

構文 Applicationオブジェクト.ActiveCell
解説 アクティブセルを参照するRangeオブジェクトを取得する。Applicationオブジェクトは省略可能。
通常使う場合はオブジェクトが省略されて、オブジェクトのように使われる。
ActiveCell.Value = "備考"
アクティブのセルに「備考」と設定する。

Addressプロパティ

構文 Rangeオブジェクト.Address([RowAbsolute],[ColumnAbsolute],[ReferenceStyle],[External],[RelativeTo])
解説 指定した範囲のセル番号を取得する。セル番号は「$B$5」のように文字列型の値として取得する。
引数 RowAbsolute:
設定値を「False」にすると、行番号を相対参照として取得する。
省略した場合は、「True」(絶対参照)になる。
ColumnAbsolute:
設定値を「False」にすると、列番号を相対参照として取得する。
省略した場合は、「True」(絶対参照)になる。
ReferenceStyle:
セル範囲の参照方法を指定する。「xlR1C1」を設定すると、セル番号の値をR1C1形式で取得する。
省略した場合は、通常のA1形式になる。
External:
設定値を「True」にすると、取得した値にブック名とシート名が含まれる。
省略した場合は、「False」になる。
RelativeTo:
引数RowAbsolute、および引数ColumnAbsoluteを「False」に設定し、引数ReferenceStyleに「xlR1C1」を設定した場合、相対参照を開始する位置を指定する。
MsgBox ActiveCell.Address
アクティブセルのセル番号を取得し、メッセージ画面に表示する。

Columnプロパティ

構文 Rangeオブジェクト.Column
解説 指定したセルの列番号を取得する。
MsgBox ActiveCell.Column & "列目のセルがアクティブです。"
アクティブセルの列番号を調べて、「列目のセルがアクティブです。」の文字列と連結してメッセージに表示する。

Rowプロパティ

構文 Rangeオブジェクト.Row
解説 指定したセルの行番号を取得する。
MsgBox ActiveCell.Row & "行目のセルがアクティブです。"
アクティブセルの行番号を調べて、「行目のセルがアクティブです。」の文字列と連結してメッセージに表示する。

MsgBox関数

構文 MsgBox(Prompt,[Buttons],[Title],[HelpFile],[Context])
解説 メッセージ文やアイコン、表示するボタンを指定してメッセージ画面を表示する。
引数Prompt以外をすべて省略すると、「OK」ボタンのみのメッセージ画面を表示する。
引数Buttonsで、表示するボタンとアイコン、標準ボタンを指定できる。(下表を参照)
ユーザーがクリックしたボタンによって、異なる戻り値が返る。(下表を参照)
主な
引数
Prompt:
メッセージ画面に表示する文字列を指定する。
文字列は、「"」(ダブルクォーテーション)で囲む。
Buttons:
ボタンとアイコン、標準ボタンの種類を指定する。
標準ボタンとは、あらかじめ選択状態にあるボタンで、Enterキーを押すことでクリックされたとみなされる。
Title:
メッセージ画面のタイトルバーに表示する文字列を指定する。
省略した場合は、「Microsoft Excel」と表示される。
MsgBox "テストです", vbOKOnly + vbInformation
「テストです」とメッセージを表示する(アイコン付き)。

If MsgBox("処理を実行しますか?", vbYesNo + vbInformation) = vbNo Then
 Exit Sub
End If

「処理を実行しますか?」とメッセージを表示する(アイコン付き)。

「いいえ」ボタンを押された場合、処理を中断する。

引数Buttonsの設定値

設定値 内容
ボタン vbOKOnly 「OK」ボタン
vbOKCancel 「OK」「キャンセル」ボタン
vbAbortRetryIgnore 「中止」「再試行」「無視」ボタン
vbYesNoCancel 「はい」「いいえ」「キャンセル」ボタン
vbYesNo 「はい」「いいえ」ボタン
vbRetryCancel 「再試行」「キャンセル」ボタン
アイコン vbCritical 警告メッセージアイコン
vbQuestion 問い合わせメッセージアイコン
vbExclamation 注意メッセージアイコン
vbInformation 情報メッセージアイコン
標準
ボタン
vbDefaultButton1 第1ボタンを標準ボタンに設定
vbDefaultButton2 第2ボタンを標準ボタンに設定
vbDefaultButton3 第3ボタンを標準ボタンに設定

ボタンの戻り値

クリックしたボタン 戻り値
OK vbOK 1
キャンセル vbCancel 2
中止 vbAbort 3
再試行 vbRetry 4
無視 vbIgnore 5
はい vbYes 6
いいえ vbNo 7

最後まで読んでいただき、ありがとうございました!