Excelで「ID番号を行き来する」超便利なマクロを作成する方法!

エクセル

あなたはエクセルで複数のシートの間の移動をするのが面倒だと思ったことはありませんか?

・シート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で紐づけてないシートにも飛べるので、こちらも便利ですよ!

コメント

タイトルとURLをコピーしました