0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Q16.特定のセルにジャンプするには?

Posted at

今回は特定のセルにジャンプする方法を考えていきます。
例えば、情報をたくさん書いてあるシートだとスクロールして追っていくのが
手間になる時とかありますよね。
わりと簡単に実装できてあると便利だったりします。

というわけで、今回は以下ようなファイルにジャンプを実装していきます。

16.png

具体的な内容は、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")

各データシートに全体シートへ戻るようなジャンプボタンを設置すると
さらに利便性が上がりますね。

マクロができたら、以下のように図形を配置して右クリックから
マクロを登録できます。
16-2.png

マクロが登録できたら、飛びたい人の名前のセルを選択して、図形をクリックしてみましょう。
無事に対象のシートへジャンプすることができるはずです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?