質問: vba[private sub]のコードをシート上の図形に登録する方法を教えて vbaの初級者です。 vba[private sub]に以下の様なコードを作成しました。 (表示するシートを切り替えるコードです) private sub *****1_click() worksheets("*****").activate end sub 以上のコードをシート上に作成した図形(オートシェイプやコントロールボタン)に登録しようとすると、作成した図形を右クリックして出てくるメニュー【マクロ登録】ダイアログ画面には【private sub】マクロ名のリストが出て来ず、登録したくても登録できません。 (【sub】マクロ名のリストは表示されているが?) どうしたら、【private sub】マクロを登録できるか?教えて下さい。お願いいたします。
回答: no.1です。 補足コメントの内容 ・シートへのプロシージャーの記述 ・「private sub」を図形に登録 までは想定して回答したつもりでしたが、何が解決しないのかが不明です。 >どうしてもprivateが良いのであれば、そのあとで追記しても大丈夫なようです。 が理解できませんでしたか? 一旦「sub・・・」で登録後、「private sub・・・」としても、登録されたプロシージャは名前が変更されていなければ変更されないので、privateという属性に変更しても(少なくとも私の使用している環境では)大丈夫ですよ。 という意味で回答しております。 >【マクロ登録】ダイアログ画面には【private sub】マクロ名のリストが出て来ず、登録したくても登録できません。 ということでしたので、「リスト」へ表示するための手段として回答しましたが、 「private等、リストに出てこない物を登録したい」ということでしたら「マクロ名」のところに (ブック名!)シート名.プロシージャー名 ※ブック名は省略可能。シート名.(ピリオド)プロシージャー名で、そのシートにあるプロシージャーという意味でしょう。 を手入力しても登録されます。 なお、シートに記載されたprivateだからと言って「他のシートの図形から登録できない」わけでは無く、上記の方法で簡単に登録できますので、それほどprivateにこだわる意味は無いように思います。 no2さんへの補足コメントでしたら、この回答は無視して構いません。