<Excel As CommandBarControlでメニューにマクロを登録>
こんにちは、三流プログラマーのKen3です。 今回は、まだ実用的なツールも作っていないのに、 メニューにマクロを割り当てる方法を探ってみました。 http://www.ken3.org/p/h/office-029.lzh に今回のサンプル保存されてます。/* * 1. 今回のキッカケ */
前回、下記のようにして、 ショートカットキーにマクロを割り当てました。 .OnKeyメソッドが見つかる。
Private Sub Workbook_Open()
'プロシージャーの登録
Application.OnKey "^{c}", "aaa"
'CTRL+Cをつぶすと(横取りすると問題あるが・・)
End Sub |
Sub menu_add()
Dim objMENU As CommandBarControl
Dim objSUBMENU As CommandBarControl
'メインメニューを追加する
Set objMENU = CommandBars("Worksheet Menu Bar").Controls.Add(msoControlPopup, , , , True)
objMENU.Caption = "Ken3テスト"
'階層の下を作成する
Set objSUBMENU = objMENU.Controls.Add 'アイテムを追加する
objSUBMENU.Caption = "VBAのSUB AAA" '表題
objSUBMENU.OnAction = "aaa" 'モジュール名を文字列で
Set objSUBMENU = Nothing '設定後開放してもOKです。
'階層の下を作成する
Set objSUBMENU = objMENU.Controls.Add 'アイテムを追加する
objSUBMENU.Caption = "SUB BBBを起動" '表題
objSUBMENU.OnAction = "bbb" 'モジュール名を文字列で
Set objSUBMENU = Nothing '設定後開放してもOKです。
End Sub |
Sub aaa()
MsgBox "AAAが呼ばれました"
End Sub |
Sub bbb()
MsgBox "BBBが呼ばれました"
End Sub |
↑メニューの追加実行のイメージです。
通常は、_Openのイベントなどで、メニューを初期化すればOKだと思います。
-【けんぞう!】---------------------------------------------------------
三流君の、小金稼ぎ、お小遣い稼ぎシリーズ第2弾(稼げないだろコラ!!)
http://www.ken3.org/etc/500yen/yosou.html
キャンペーン参加で得たコインを予想問題に投票。正解するとコインが倍増、
それを換金という画期的“お得エンタメ”です。
運と実力で誰でも現金獲得のチャンスがあります。
思ったよりもあたらないけど、無料なのでチャレンジしてみては?
------------------------------------------------------------------------
|
あとは、項目別にMSでお勉強かな? ◆ マイクロソフト サイトの歩き方 ◇ How-To インデックス ◇ FAQ インデックス ◇ スキルレベル別おすすめコンテンツ ◇ テクノロジ マップ ◇ テーマ別技術資料一覧 |
| ※種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。 お奨め本の目次を見るだけでも勉強になったり |