この記事では、VBAマクロでクリックしたセルの値・位置・行を取得・実行する方法(マウスで選択・アクティブ・ダブルクリック)について解説していきます。
ポイントとしては、`SelectCell`関数と`DoubleClickRow`関数を使用することです。
特に初心者にも分かりやすくするため、サンプルコード内で変数名をわかりやすい名称にしています。
それでは詳しく見ていきましょう!
VBAマクロでクリックしたセルの値と位置を取得実行(マウスで選択・アクティブセル)する方法 【クリックするとkekkaシートのA列に行番号、B列に列番号、C列に値が記載されるように】【SelectCell】
それではまず、クリックしたセルの値と位置を取得実行する方法について解説していきます。
このマクロを使用すると、ユーザーがExcelシート上の任意のセルをクリックした際に、そのセルの行番号、列番号(セルの位置)、および値を別のシートに自動で記録します。
(具体的には、クリックするとkekkaシートのA列に行番号、B列に列番号、C列に値が記載される)
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim aaaaakekkaSheetaaaa As Worksheet
Set aaaaakekkaSheetaaaa = ThisWorkbook.Sheets("kekka")
' シートの最後の行を見つける
Dim aaaaalastRowaaaa As Long
aaaaalastRowaaaa = aaaaakekkaSheetaaaa.Cells(aaaaakekkaSheetaaaa.Rows.Count, 1).End(xlUp).Row + 1
' 選択されたセルの行番号、列番号、値を取得
Dim aaaaarowaaaa As Long, aaaaacolaaaa As String, aaaaavalueaaaa As Variant
aaaaarowaaaa = Target.Row
aaaaacolaaaa = Target.Column
aaaaavalueaaaa = Target.Value
' kekkaシートに新しい行に追記
With aaaaakekkaSheetaaaa
.Cells(aaaaalastRowaaaa, 1).Value = aaaaarowaaaa
.Cells(aaaaalastRowaaaa, 2).Value = aaaaacolaaaa
.Cells(aaaaalastRowaaaa, 3).Value = aaaaavalueaaaa
End With
End Sub
コードのAlt+F8を押し、マクロ選択画面でSelectCell関数を実行します。
上述のよう、このコードはExcel内でセルを選択するたびに、そのセルの位置と値をkekkaシートに記録するものとなっています!
VBAマクロでダブルクリックした行番号と行の情報すべてを取得実行する方法 【ダブルクリックするとkekkaシートのA列に行番号、B列以降に選択行方向の情報すべてを転記されるように】【DoubleClickRow】
続いては、ダブルクリックした行の情報を取得する方法について解説していきます。
この機能を使うことで、ユーザーが行をダブルクリックした際に、その行のすべての情報を別のシートに転記することができます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
申し訳ありません、ダブルクリック時のコードは行全体の内容をB列以降に適切に転記するように設定されていませんでした。修正して、A列に行番号を、B列以降に選択された行の内容を転記するようにします。
以下が修正されたDoubleClickRow関数です:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim aaaaakekkaSheetaaaa As Worksheet
Set aaaaakekkaSheetaaaa = ThisWorkbook.Sheets("kekka")
' シートの最後の行を見つける
Dim aaaaalastRowaaaa As Long
aaaaalastRowaaaa = aaaaakekkaSheetaaaa.Cells(aaaaakekkaSheetaaaa.Rows.Count, 1).End(xlUp).Row + 1
' ダブルクリックされた行番号をA列に記録
aaaaakekkaSheetaaaa.Cells(aaaaalastRowaaaa, 1).Value = Target.Row
' ダブルクリックされた行の全データをB列以降に転記
Dim aaaaaCellaaaa As Range
Dim aaaaacolIndexaaaa As Integer
aaaaacolIndexaaaa = 2 ' B列から開始
For Each aaaaaCellaaaa In Target.EntireRow.Cells
aaaaakekkaSheetaaaa.Cells(aaaaalastRowaaaa, aaaaacolIndexaaaa).Value = aaaaaCellaaaa.Value
aaaaacolIndexaaaa = aaaaacolIndexaaaa + 1
Next aaaaaCellaaaa
Application.CutCopyMode = False
Cancel = True
End Sub
A列にはダブルクリックされた行番号が記録され、B列以降にはその行に含まれるすべてのデータが転記されます!
まとめ VBAマクロでクリック・マウス選択したセルの位置・行を取得・実行する方法(アクティブ・ダブルクリック)【SelectCell, DoubleClickRow】
ここでは、VBAマクロでクリックしたセルの値・位置・行を取得・実行する方法(マウスで選択・アクティブ・ダブルクリック)【SelectCell, DoubleClickRow】について確認しました。
マクロをマスターして、さらに快適な生活を送っていきましょう!