PR
古庄 潤(ふるしょう じゅん)
本業はエンジニア。ICに様々な機械をつなぎ、電流やら電圧を測定する。もちろん、これらの測定器もVBAでコントロールし、取り込んだデータもマクロで処理する。人呼んで、マクロの鬼軍曹!
今回のサンプルは、Excel2002/2003/2007で動作を確認しています

「はっくしょん」
「あら、先生!風邪ですか?うつさないでくださいね」
「いや、誰かがわしの噂をしとる」
「医者のくせに非科学的ですね」
「いや、こればっかりは、間違いない。どこぞの御婦人がわしの噂をしとるに違いない。わしに電話はなかったかな?」
「ずっと一緒に居たじゃないですか」
「手紙は来とらんかな?」
「さっき渡したでしょ?通信販売のダイレクトメールだけです」
「むむぅ・・・何か連絡があるはずなんじゃが・・・」
「御免ください」
「そら来た!」
「患者さんでしょ?」
「何でしょうか?」
「VBAクリニックはこちらでしょうか?」
「ほら、やっぱり、患者さんだ」
「そう?」
「マクロを処方してもらえると聞いて来たんですが」
「残念でしたね先生」
「しょんぼり」
「患者さん、ど~ぞ~」

今月の相談
 資料を作成したのですが、シートが多くなって、目次のシートから、各シートにジャンプするのが大変になってしまいました。目次の項目をクリックしたら、その項目の詳細を記述したページにジャンプするような仕組みはできないでしょうか?
図1●トップシート
図1●トップシート
[画像のクリックで拡大表示]

「先生、今回は、お茶の子さいさいですね?」
「そうか?」
「はい!シートにジャンプってことは、シートを表示するってことでしょ? Activateメソッドを使えばできます」
「ほほぅ。では、ゲール君に任せるとしよう」
「合点承知の介でぃ」

「ゲール君、まだかな?」
「はい、先生!一生懸命やってるんですが」
「一生懸命やってるんですが、何じゃね?」
「セルをクリックしたらマクロを実行して、目的のシートを表示しようとしているのですが・・・」
「ほっほっほ、そりゃあ大変じゃ」
「はい、大変です。先生、ヒントをください」
「ヒント?」
「はい、セルをクリックしたら発生するイベントの名前を教えてください。それさえわかれば、後はどうにでも」
「それは、無理じゃ」
「そんなぁ、意地悪しないで教えてくださいよぉ」
「無理なものは無理じゃ」
「またまたぁ、先生と私の仲じゃないですかぁ」
「セルをクリックして発生するイベントは無い!」
「え!?・・・だって・・・」

「右クリックやダブルクリックのイベントはあるが、クリックで発生するイベントは無いのじゃよ」
「あら!」
「SelectionChangeイベントならあるがね」
「おぉ!あるんじゃないですか。じゃあ、それでいいです」
「ただし、名前からもわかるように、現在選択されているセルと違うセルが選択された場合に発生するイベントじゃ。よって、選択状態にあるセルをクリックしても、このイベントは発生しない」
「ん~、微妙に使えないイベントですね」
「まぁ、そうじゃな」
「困ったぁ・・・グリコ! 先生、お手上げです。何かアイデアはありませんか?」
「あるよ」
「教えて!先生、教えて!!」
「ハイパーリンクを使うんじゃよ」
「ハイパーリンク?」
「そうじゃ」
「ハイパーリンクって、他のブックを開いたり、ホームページを開くのに使うんじゃないですか?」
「うむ、そういう使い方もできるが、任意のセルをアクティブにしたり、他のシートをアクティブにする用途にも使えるんじゃよ」
「へぇ~、目から鱗」
「マクロ記録で作ることができるから、やってみなさい」
「はい!」