人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelのワークシート上で、右クリックするとコンテキストメニューが出ます。そこにVBAマクロを使ってメニューを追加したいのですが、検索して調べた限りでは、メニュー → サブメニュー までのやり方しか記事がみつかりませんでした。それいじょうに階層を増やして、サブメニューのサブメニューを追加する事は出来ないのでしょうか?(つまり、メニュー → サブメニュー → サブメニュー) もし出来るのなら、コードを教えて下さい。 よろしくお願いします。




1440586372
●拡大する

●質問者: greenblat
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●200ポイント ベストアンサー

検索して見つけた、というのはここでしょうか?
http://www.atmarkit.co.jp/ait/articles/1408/25/news030.html

できますよ、2階層でも 3階層でも。
CommandBarControl に対して、新しく作ったもうひとつの CommandBarControl を追加します。
先のページのソースで、3階層目を表示するのは、こんな感じです。

Option Explicit
Private Sub Worksheet_Activate()
 Dim myCommandBar As CommandBar
 Dim myCommandBarControl As CommandBarControl  ' 2階層目
 Dim myCommandBarControl2 As CommandBarControl  ' 3階層目
 Set myCommandBar = Application.CommandBars("Cell")
 myCommandBar.Reset
 
  ' 2階層目をメニューに追加
 Set myCommandBarControl = myCommandBar.Controls.Add(Before:=1, Type:=msoControlPopup)
 With myCommandBarControl
 .Caption = "文字"
  ' 3階層目を 2階層目に追加
 Set myCommandBarControl2 = myCommandBarControl.Controls.Add(Before:=1, Type:=msoControlPopup)
 With myCommandBarControl2
 .Caption = "文字2"
 With .Controls.Add
 .Caption = "文字を表示"
 .OnAction = "文字を表示"
 End With
 
 With .Controls.Add
 .Caption = "文字の色"
 .OnAction = "文字の色"
 End With
 End With
 End With
End Sub

こんな見た目になります。
f:id:a-kuma3:20150826222749p:image


greenblatさんのコメント
ありがとうございます!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ