質問: エクセルvbaについて教えてください! 右クリックで表示されるメニューにマクロの実行を登録したいので エクセルvbaについて教えてください! 右クリックで表示されるメニューにマクロの実行を登録したいのですが、表示されるのは特定のブックを、開いた時のみ表示され、そのブックを閉じると表示されないようにしたいのですが、どのようなコードを、入れたら良いでしょうか? また、そのコードを入力するモジュールはthis work bookに入力になりますか?標準モジュールに入れて出来る方法があればそちらも教えて下さい。 わかりにくい説明ですが、よろしくお願いします!!!
回答: すでに、no.1さんのご紹介がありますが、office tanaka の田中さんのコードは関心ししませんね。起動する前に、reset や delete を入れるという建前が必要です。 '//標準モジュール sub auto_open call rightclickmenuaccess '直接中身を書いても良い。 end sub sub rightclickmenuaccess() 'dim i as integer '右クリックメニュー登録 with application.commandbars("cell") .reset '一旦元に戻す with .controls.add _ (type:=msocontrolbutton, before:=1, temporary:=true) '<=恒久的に残らない-temporary .begingroup = false .caption = "マクロ名" .onaction = "xxxxxxx" '実際のマクロ名 end with end with end sub private sub xxxxxxx() 'private にすると、右クリックのみの呼び出しになります。 '実際の作業マクロ end sub sub auto_close() application.commandbars("cell").reset '一旦元に戻す end sub '------------------------------- >thisworkbookに入力になりますか?標準モジュールに入れて出来る方法があればそちらも教えて下さい。 thisworkbook_open()/thisworkbook_close() でも同じです。 thisworkbook_openだとしても、 call rightclickmenuaccess '標準モジュールのマクロを呼び出し1行でよいのです。 ところで、こういうスタイルは、旧設定のようなのです。 https://www.rondebruin.nl/win/s6/win001.htm 新しい設定の仕方(2010以上)は、bruin氏のように、xml にコードを入れる方法が好まれるようです。 https://www.rondebruin.nl/win/s2/win014.htm ただ、この方のxmlコードは日本語(2 byte文字)を埋め込むようには出来ていませんので xml version="1.0" encoding="utf-8"? // 一行を加えて対応させる サンプルは downloads にあります。(2010-2016) なお、長い間手付かずのui xmlエディタがmicrosoft から更新されました。custom ui editor for microsft office version 4.0.64(メニュー非日本語、2 byte文字対応)、またoffice 右クリックメニュー登録アプリもありますが、日本語(2 byte文字)に完全対応していない模様です。ちょっとむつかしそうですが、やってみると病みつきなるかもしれません。