今回は特定のセルにジャンプする方法を考えていきます。
例えば、情報をたくさん書いてあるシートだとスクロールして追っていくのが
手間になる時とかありますよね。
わりと簡単に実装できてあると便利だったりします。
というわけで、今回は以下ようなファイルにジャンプを実装していきます。
具体的な内容は、B列にある名前を選択すると、その名前の人のシートへジャンプするという
マクロです。今回は合わせて、図形を配置して、そこにマクロを登録してみます。
こうすることで、ボタン一つで対象のシートへ飛ぶことができます。
■ポイント
まずは、メインであるジャンプの例は以下のとおりです。
Application.Goto Reference:=Worksheets("Sheet2").Range("A1")
これ、シート2のA1セルへジャンプすることができます。
あとは、選択しているセルの情報を取得する必要がありますね。
その後、シート名と取得した値が一致していることを判断できれば、
指定のシートへジャンプすることができますよね。
■回答
Sub Q16_Answer()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name = ActiveCell.Value Then
Application.Goto Reference:=ws.Range("A1")
End If
Next ws
End Sub
■解説
今回は、シートの名前とB列に記載している名前が一緒ということに着目して、
マクロをつくっています。
ワークシートを格納する変数を宣言して、ForEachでループさせています。
ws.Nameには、左のシートから順にシート名が格納されていきます。
現在、選択しているセルの値は、ActiveCell.Valueから取得することができます。
あとは、条件に一致したらそのシートのA1セルへ飛ぶ記述するだけです。
以下の記述です。
Application.Goto Reference:=ws.Range("A1")
各データシートに全体シートへ戻るようなジャンプボタンを設置すると
さらに利便性が上がりますね。
マクロができたら、以下のように図形を配置して右クリックから
マクロを登録できます。
マクロが登録できたら、飛びたい人の名前のセルを選択して、図形をクリックしてみましょう。
無事に対象のシートへジャンプすることができるはずです。