とりにくを好きな人がVBAを勉強しています。

VBAを中心に、その他日々の生活で感じていることを書いていきます。

【Excel】【VBA】図形をクリックしたときにワークシートを移動する方法

おはようございます。こんにちは。こんばんは。
何年かぶりにバッティングセンターにいったら、流し打ちができるようになっていたとりにくVBAです。



今回は、他人が作ったファイルの修正を依頼されて作業しているときに、発見したものについて紹介します。


図形をクリックしたときにワークシートを移動する


みなさんはこのような仕組みを作ったことはありますでしょうか?



私は図形をクリックしたときに何かが起きるといったものを初めてみたときに、けっこう驚いて感動したものです。



そして、自分でも作るようになって、他に人に見せたとき驚かれていい気分になったりしていました。



図形に指定のワークシートをアクティブにするマクロを登録するのはよくやります。



コードの記述は簡単で、


Sheets("シート名").Activate


とするだけです。


f:id:mayo032j:20200810084130g:plain




こんな簡単なことで驚いてもらえるなんてコスパがいいですね。


マクロが登録されていない??


今回修正を依頼されて作業していたファイルにも、図形をクリックするとワークシートが移動できるように仕掛けがしてありました。


しかし、マクロの一覧を見てみても該当のものが見つかりません。



しかも、中にはクリックすると「参照が正しくありません。」という警告を発するものもあります。



この警告、私は初めて見まして、簡単に調べてみたのですがよくわかりませんでした。



ハイパーリンクでした

結論からいえば、図形にセルを参照したハイパーリンクが設定されていました。



「参照が正しくありません。」の警告は、参照先のシート名が変更されていたことによるエラーでした。



ハイパーリンクが設定されている箇所にマウスカーソルを乗せると、あらかじめ設定した内容かもしくは、参照先のアドレスがポップアップで表示されます。



このことでたまたま気づくことができました。



ハイパーリンクについてはあまり使ったことがなく、最近勉強しているMOS試験の勉強が役に立ちました。



ちなみに、カーソルを乗せたときに表示させる内容はこちらの「ヒントの設定」で自由に編集することができます。


f:id:mayo032j:20200810084421p:plain


f:id:mayo032j:20200810084532p:plain


まとめ


今回は図形をクリックしたときにワークシートを移動する方法として、マクロの登録とハイパーリンクの2通りを紹介しました。



どちらの方法でもやりやすい方を選択すればいいと思います。



他の人が作ったファイルを触ってみると新しい発見があっていいですね。