この記事では、VBAマクロを使用してExcelのセルをクリックまたはダブルクリックした際のセルの値と位置を別シートに表示、追記する方法について解説していきます。
ポイントとしては、Range関数とCells関数を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。
そのため、ご活用の際には、適切なものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでクリックしたセルの値と位置を取得し別シートに表示、追記する方法【Range関数、Cells関数】
それではまず、VBAマクロでクリックしたセルの値と位置を取得し別シートに表示、追記する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Private Sub Worksheet_SelectionChange(ByVal Taisyou As Range)
Dim hensuuSheet As Worksheet
Dim gyousuu As Long
' 別シートを指定
Set hensuuSheet = ThisWorkbook.Sheets("Sheet2")
' 最終行を取得
gyousuu = hensuuSheet.Cells(hensuuSheet.Rows.Count, 1).End(xlUp).Row + 1
' クリックしたセルの位置と値を別シートに追記
hensuuSheet.Cells(gyousuu, 1).Value = Taisyou.Address
hensuuSheet.Cells(gyousuu, 2).Value = Taisyou.Value
End Sub
コードのAlt+F8を押し、マクロ選択画面でWorksheet_SelectionChange関数を実行します。
このコードでは、ユーザーがセルをクリックするたびに、そのセルの位置(アドレス)と値を別のシート(Sheet2)のa列、b列に順番に追記していきます。Worksheet_SelectionChangeという特別な関数を使用しており、セルが選択されるたびに自動でこの関数が実行されます。
VBAマクロでダブルクリックしたセルの値と位置を取得し別シートに表示、追記する方法【Range関数、Cells関数】
続いては、VBAマクロでダブルクリックしたセルの値と位置を取得し別シートに表示、追記する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Private Sub Worksheet_BeforeDoubleClick(ByVal Taisyou As Range, Cancel As Boolean)
Dim hensuuSheet As Worksheet
Dim gyousuu As Long
' 別シートを指定
Set hensuuSheet = ThisWorkbook.Sheets("Sheet2")
' 最終行を取得
gyousuu = hensuuSheet.Cells(hensuuSheet.Rows.Count, 1).End(xlUp).Row + 1
' ダブルクリックしたセルの位置と値を別シートに追記
hensuuSheet.Cells(gyousuu, 1).Value = Taisyou.Address
hensuuSheet.Cells(gyousuu, 2).Value = Taisyou.Value
' ダブルクリック後の編集をキャンセル
Cancel = True
End Sub
コードのAlt+F8を押し、マクロ選択画面でWorksheet_BeforeDoubleClick関数を実行します。
このコードでは、Worksheet_BeforeDoubleClickという特別な関数を使用しており、セルがダブルクリックされる直前にこの関数が実行されます。セルの位置と値を別のシート(Sheet2)に追記し、その後、セルの編集をキャンセルしています。