訪問して頂きありがとうございます。まさふくろーです。
今回は、アクティブセルの位置を取得する方法をご紹介します。
目次
アクティブセルの位置を取得する
作成手順
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。
シート上にカーソルを移動すると、ポインターが「+」の状態になります。
左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。
すると、「マクロの登録」画面が表示されます。
①「マクロ名」を「アクティブセル取得」に変更⇒②「新規作成」ボタンをクリックします。
MEMOマクロ名は、どんな名前にしても問題ありませんが、処理と関係ある名前にしたほうが、コードを見る際にわかりやすいです。
すると、自動的にVBE(Visual Basic Editor)が起動します。
VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。
入力するコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub アクティブセル取得() Dim Ad As String 'セル番号用変数 Dim Col As Integer 'セルの列番号用変数 Dim Row As Integer 'セルの行番号用変数 Ad = ActiveCell.Address Col = ActiveCell.Column Row = ActiveCell.Row MsgBox "セル番地:" & Ad & "、セルの列番号:" & Col & "、セルの行番号:" & Row End Sub |
ボタンの名前を変更する
エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。
右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。
ボタンの名前を変更します。
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 |
|
「処理を実行しますか?」とメッセージを表示する(アイコン付き)。
「いいえ」ボタンを押された場合、処理を中断する。 |
設定値 | 内容 | |
ボタン | 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 |
最後まで読んでいただき、ありがとうございました!
本のまとめ記事はこちら