この記事では、ExcelのVBAマクロを使ってセル位置を取得する方法について解説していきます。
ポイントとしてはRange関数、Find関数を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。それでは詳しく見ていきましょう!
VBAマクロで選択セルの位置を取得し指定セル(e2セル)に出力させる方法【Range関数】
それではまず、VBAマクロで選択セルの位置を取得し指定セル(e2セル)に出力させる方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SentoE2Hyouzi()
Dim hensuu As Range
Set hensuu = Selection
Range("E2").Value = hensuu.Address
End Sub
コードのAlt+F8を押し、マクロ選択画面でSentoE2Hyouzi関数を実行します。
このコードは、Excel上で選択されているセルの位置を取得し、その位置情報をE2セルに出力するものです。変数hensuuに選択されたセルの情報を保存し、E2セルにそのアドレス情報を表示しています。
VBAマクロでセルの位置を文字列検索で取得、表示する方法(完全一致で複数にも対応、エラー処理)【Find関数】
続いては、VBAマクロでセルの位置を文字列検索で取得、表示する方法(完全一致で複数にも対応、エラー処理)について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub MojiKensakuKanzenIchi()
Dim hensuu As Range
Dim kensakuKekka As Range
Dim moji As String
moji = InputBox("検索する文字を入力してください")
Set hensuu = ActiveSheet.Cells.Find(What:=moji, LookAt:=xlWhole)
If hensuu Is Nothing Then
MsgBox "該当する文字は見つかりませんでした"
Exit Sub
End If
Set kensakuKekka = hensuu
Do
MsgBox kensakuKekka.Address
Set kensakuKekka = ActiveSheet.Cells.FindNext(kensakuKekka)
Loop While Not kensakuKekka Is Nothing And kensakuKekka.Address <> hensuu.Address
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiKensakuKanzenIchi関数を実行します。
このコードでは、ユーザーが入力した文字列をActiveSheet上で完全一致検索し、該当するセルの位置をメッセージボックスで表示します。
複数の該当セルがある場合、すべてのセルの位置を順次表示します。また、該当するセルが見つからない場合は、エラーメッセージを表示します。
VBAマクロでセルの位置を文字列検索で取得、表示する方法(部分一致で複数にも対応、エラー処理)【Find関数】
続いては、VBAマクロでセルの位置を文字列検索で取得、表示する方法(部分一致で複数にも対応、エラー処理)について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub MojiKensakuBubunIchi()
Dim hensuu As Range
Dim kensakuKekka As Range
Dim moji As String
moji = InputBox("検索する文字を入力してください")
Set hensuu = ActiveSheet.Cells.Find(What:=moji, LookAt:=xlPart)
If hensuu Is Nothing Then
MsgBox "該当する文字は見つかりませんでした"
Exit Sub
End If
Set kensakuKekka = hensuu
Do
MsgBox kensakuKekka.Address
Set kensakuKekka = ActiveSheet.Cells.FindNext(kensakuKekka)
Loop While Not kensakuKekka Is Nothing And kensakuKekka.Address <> hensuu.Address
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiKensakuBubunIchi関数を実行すれば処理完了です^_^