うちンち

パソコンと家族と、ときどき爆弾。

自分仕様のメニューをつくる

2009-03-10 | エクセルおぼえがき
いろいろと使いたい機能はあるが、ショートカットキーをそんなに覚えちゃいられない。
とりあえず、忘れないように割り当てたショートカットキーはどこかで簡単に見れるようにしておこう。
メニューバーに自分仕様のメニューを追加しておくと見やすいと思われるのでその方法↓

-----------------------

メニューバーのカスタマイズはエクセル自体の基本機能で可能であるが、アドインに存在するマクロを登録することが2003ではできないので、以下の方法を使う。
ちなみに2007ではアドインのマクロを普通にボタンで追加できるので、こんなまどろっこしいことをしなくてもOK。

1)VBAを起動して、作成済みのアドインブックの標準モジュールに動かしたいマクロを記述する
  ここでは例として、登録したショートカットの一覧を表示するマクロ

  Sub about()

   MsgBox "●追加ショートカット一覧" & Chr(13) & Chr(13) & "  >値のみ貼り付け・・・Ctrl + Shift + v", _
    vbOKOnly + vbInformation, "カスタマイズメニューについて"

  End Sub


  <解説>
  この「about」という名前のマクロは以下のメッセージを表示するものである
  
  「_(アンダーバー)」はプログラム内で改行するためのもの。改行しないなら不要

2)作成済みのアドインブックの、前回作成した「Private Sub Workbook_AddinInstall()」のところに、メニューを表示するマクロを追加する
  たとえばショートカットを割り当てるマクロとあわせると、

  Private Sub Workbook_AddinInstall()

   '新たなメニューを追加する
   Set Menu = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)

   '追加するメニューの名称指定
   Menu.Caption = "カスタマイズ"

   '追加した項目にサブメニューも追加
   Set Submenu1 = Menu.Controls.Add

   'サブメニューの名称とクリック時の動作指定
   Submenu1.Caption = "カスタマイズ一覧"
   Submenu1.OnAction = "about"

   'で、これが前回の記事で記述したショートカットキー割り当て
   Application.MacroOptions Macro:="Datapaste", ShortcutKey:="V"

  End Sub


3)アドインブックの読み込みをやめたときに備えて以下のマクロも記述する

  Private Sub Workbook_AddinUninstall()

   Application.CommandBars("Worksheet Menu Bar").Controls("カスタマイズ").Delete

  End Sub

  <解説>
  これをしないと、アドインブックの読み込みをやめても追加したメニューが削除されず、
  アドインブックを読み込むたびに同じメニューが追加されてしまう

4)アドインブックを読み込む(前回参照)
  すでにアドインとして追加済みのブックに上記マクロを記述したなら、アドインを再読み込みする
  下記画面(前回記事参照)でいったん該当アドインブックのチェックを外して「OK」ボタンで閉じ、
  再び下記画面を開いてチェックを入れて「OK」ボタンを押す
  

すると以下のようにメニューが追加され、サブメニューをクリックすればメッセージが表示される。


-----------------------

このような一覧表示だけでなく、ショートカットに登録するほどではないほかのマクロも、同様にメニューから動かせるようになる。

最新の画像もっと見る