マクロ機能のエクセルファイルを開くと、こんな四角いボタンを目にします。
これは、マクロを実行させるスイッチのボタンで、その名も”コマンドボタン”
もちろん、ボタンのタイトルは自分でタイトルを自由に付け替えられます。
そんな、コマンドボタンですが、シート状に置くと不便を感じることもある。
それは、シートの列幅を変えると、それに伴ってサイズも変わってしまうこと。
なので、フォームコントロールの書式設定からサイズの可変を禁止します。
ですが、その設定を忘れてしまうと、誤って削除してしまうこともあるんだ。
列幅の中にフォームボタンを置き、その列を削除するとボタンまで伴います。
なので、誤って消したくなければ、ActiveXのコマンドボタンが無難でしょう。
後は、このボタンを四角でなくて楕円形にしてみたいとか欲も出て来ます。
でも、サイズは可変でも四角い形状を変えることはできないのが、残念です。
まあ、少しだけできるとしたら、ボタンに画像を貼りつけるテクニックだな。
ただ、ActiveXコントロールで設定したボタンしかできないのから要注意。
次に、プロパ^ティの中に”Picture”の欄を選び、ここで画像を指定する。
だけど、制約はビットマップデータ(BMP)だけで画像サイズの調整も必要。
当然、データが小さければサイズも小さくなって変にメモリーも食いません。
そうやって試してみたけど何だか面倒くさくなって、別のアイデアはないか。
代わりに、鬼太郎の目玉のおやじみたいなラジオボタンもあるにはあります。
このボタン、あまり大きくないのでピンポイントでマウスクリックが必要だ。
シート状に置いたときは白丸でも一度クリックすると、目玉ボタンに変化する。
このボタン、あまり大きくないのでピンポイントでマウスクリックが必要だ。
シート状に置いたときは白丸でも一度クリックすると、目玉ボタンに変化する。
後は、クリック時のイベント発生の挙動をコードとして書き込んでいくだけ。
まあ、たまに使うのなら便利でも、フォームボタンと同じく誤って消すかも。
なので、一長一短のあるボタン類でして、代わりのアイデアはないだろうか。
操作上、ショートカットキーを割り当てたらどうだろうかと気が付いた。
調べましたが、AltキーかCtrlキーにファンクションキーを組合わせる方法よ。
それと、エクセルのショートカットキーにもなるべくかち合わないようにする。
そんなことから、次の組み合わせが自分なりにベストだろうと選びました。
もちろん、F1単独キーの指定でも、ヘルプなんて普通は見なし困らないな。
Alt + F4キーでシャットダウン |
一つ断りたいのは、Alt+F4キーでシャットダウン機能が使えなくなります。
まあ、最近のウインドウズはフリーズすることも少なく、無駄なコマンドか。
後は、ショートカットキーをVBAに組み込むのですが、記述をどうするか。
ブックを開いた時にキーの挙動を設定するんだけど、コードは次の通り。
※VBEの”Microsoft Excel Objects”内の”ThisWorkbook”に記述
Private Sub Workbook_Open()
Application.OnKey "%{4}", "プロシージャ名"
End Sub
ちょっと問題になのは、OnKeyは『現在のエクセル』に対して有効な点。
つまり、エクセルで関係のないブックが開かれていても作動する可能性。
なので、別ブックが開かれてエクセル自体が継続していた場合に対応。
ブックを閉じる時、継続する機能を終了させるためコードを記述します。
※””で実行プロシージャの無いのを指定
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "%{4}", ""
End Sub
"%{4}"というのはAltキー+F4キーを意味して、%がAltキーのことです。
もし、コントロールキーの設定なら、”%”の代わりに”^”で指定するんだ。
なお、ブックを開くときは、プロシージャが、Auto_Openでも構いません。
というわけで、変にコマンドボタンを置くよりもシートデザインがすっきり。
どうせ、不特定多数が使用するアプリケーションでもないし、業務に携わる人だけが使うブックですから、仕事上の約束事としてショートカットキーを割り振っておいて、操作マニュアルにでも書き込んでおけば、関係者は分かった上で使うだろうと考える、へぼプログラマーがいるのでした。
使えそうな組み合わせ |
0 件のコメント:
コメントを投稿