あなたはエクセルで複数のシートの間の移動をするのが面倒だと思ったことはありませんか?
・シート1とシート2のIDを行き来したいけど、手作業で探すのは面倒。
・大量のデータの中で、関連する情報を素早く見つけたい。
こんな課題ありますよね。
そんなとき、このマクロを使えば 「クリックするだけ」 で解決します!
完成イメージ
1.シート1のIDをクリックすると、対応するIDがあるシート2にジャンプ!
2.シート2のIDをクリックすると、対応するIDがあるシート1に戻れる!
作り方を解説!
以下のコードを設定するだけで、あなたのExcelが魔法のように便利になります。
シート1用のコード
1.Excelを開き、「Alt + F11」
でVBAエディタを開きます。
2.左側の「プロジェクトウィンドウ」で「sheet1」
をダブルクリックして、以下のコードを貼り付けます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
Dim matchCell As Range
' A列以外は無視
If Target.Column <> 1 Then Exit Sub
' sheet2を参照
Set ws = ThisWorkbook.Sheets("sheet2")
' sheet2のA列で一致するセルを探す
Set matchCell = ws.Columns(1).Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not matchCell Is Nothing Then
' 一致するセルに移動
Application.Goto matchCell, True
Cancel = True
Else
MsgBox "対応するIDが見つかりません。", vbExclamation
End If
End Sub
シート2用のコード
同様に、「sheet2」
に以下のコードを貼り付けます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
Dim matchCell As Range
' A列以外は無視
If Target.Column <> 1 Then Exit Sub
' sheet1を参照
Set ws = ThisWorkbook.Sheets("sheet1")
' sheet1のA列で一致するセルを探す
Set matchCell = ws.Columns(1).Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not matchCell Is Nothing Then
' 一致するセルに移動
Application.Goto matchCell, True
Cancel = True
Else
MsgBox "対応するIDが見つかりません。", vbExclamation
End If
End Sub
動作確認
1.シート1またはシート2のA列にID番号を入力します。
2.A列のセルをダブルクリック!
3.対応するID番号があるシートに一瞬でジャンプします!
IDがあるA列を見ているので、リストに空白セルが混じっていてもジャンプできます。
注意点
1.IDが重複している場合、最初に見つかったセルに移動します。
2.IDが見つからない場合、エラーメッセージが表示されます。
まとめ
このマクロを使えば、データの行き来がスムーズになり、作業効率が格段にアップします!
特に、膨大なデータを扱う方には必須のテクニックです。
別のシートにジャンプするときに、IDを使わないでジャンプする方法もあります。
→エクセルで別のシートに飛ぶリンクを貼る方法
シートがたくさんあるときや、IDで紐づけてないシートにも飛べるので、こちらも便利ですよ!
コメント