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



回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2015/09/02 19:55:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント200pt

検索して見つけた、というのはここでしょうか?
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

id:greenblat

ありがとうございます!!

2015/09/03 10:09:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません