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

「とほほ」
「先生、どうしたんですか?」
「一昨年植えたさくらんぼの木」
「あぁ、毎年毛虫だらけになるやつ」
「なるべく農薬は使いたくないんじゃ」
「そうですか、で、それがどうしたんですか?」
「今年こそ実が生ると期待しておったんじゃが」
「生らなかったんですか?」
「そうなんじゃ」
「一つも?」
「一つも」
「それは、残念」
「実が生るのを楽しみに植えたのに」
「消毒したら?」
「なんでじゃ?」
「夏に十分栄養を蓄えないと結実しないらしいですよ」
「そうなのか?」
「みたいです」
「じゃあ、今年は消毒しよう。しかし、さくらんぼは来年まで待たなければならない」
「そう、がっかりしなくても。ここに、黄色いさくらんぼがあるじゃないですか!」
「真面目に聞いて損した。次の相談者の方、ど~ぞ~」

今月の相談
 Excelで帳簿に入力をしています。ちょっとしたマクロで作業を効率化しています。ほとんどの作業がテンキーでの入力です。できればマクロの実行もマウスを使わず、キーボードで行いたいのですが、何かいい方法はないでしょうか?

マクロを実行する第8の方法

「先生、雲をつかむようなリクエストです」
「何でじゃ?」
「だって、キーボードでマクロを実行するなんて、突飛すぎます」
「ほほぅ」
「マクロを実行する場合、シートに貼り付けたボタンにマクロを登録し、そのボタンをクリックします」
「むむぅ」
「間違ってますか?」
「それは、マクロを実行する方法の一つにすぎない」
「え?」
「マクロを実行する方法はほかにもあるのじゃよ」
「伺いましょう」
「まずは、イベントドリブン」
「あ!そうでした。セルを選択したり、セルの値が変化するとイベントが発生するんでしたね」
「そう、Excelには様々なイベントが用意されていて、イベントが発生すると、特定のプロシジャが実行される仕組みがある」
「ほかには?」
「VBEで直接実行する」
「あぁ、デバッグのときによく使う方法ですね」
「そうじゃな。マクロが完成するまでは、この方法で開発時間を短縮する」
「メニューバーの[ツール][マクロ][マクロ]で[マクロ]ダイアログボックスを表示し、そこから実行する」
「知らなかった・・・」
「この方法は、基本的にわしは使わない。よって、教えてない」
「ならば、私が知らなくても当然」
「威張ることでもないぞ」
「こりゃ失敬。まだ、ありますか?」
「ツールバーから実行する」
「ほえ?」
「メニューバーの[表示][ツールバー]「Visual Basic」で[Visual Basic]ツールバーを表示し、[マクロの実行]ボタンをクリックして、[マクロ]ダイアログボックスを表示し、そこから実行する」
「そうでした。「Visual Basic」ツールバーはメニュバーに組み込んでいて年中使っているので意識してなかった」
「ほっほっほ、灯台下暗しというやつじゃな。ほかにも自前のツールバーを作ってそこから実行する方法もある」
「そのツールバーはマクロで作るんじゃなかったですか?」
「マクロで作る方法もあるが、メニューの操作でも作ることができるぞ。最も、この方法は、Excel2003までじゃがな」
「え! Excel2007では使えないんですか?」
「メニューバーがリボンになったじゃろ?」
「あぁ、そうでした」
「自前のツールバーを表示するコードは無視されるが、マクロを登録したボタンだけは表示される」
「ふ~ん、便利になったんだか、不便になったんだか」
「であるね~」
「それで?」
「それで?」
「どうやってキーボードでマクロを実行するんですか?」
「おぉ、そうじゃった。マクロを実行する方法は、もう一つあるんじゃ」
「おや、それが答えですか?」
「鋭いなぁ。鋭いよゲール君。そう、もう一つの方法がキーボードでマクロを実行する方法、ショートカットキーじゃ」