[[20130806165107]] 『右クリックメニューの階層化』(こぺる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『右クリックメニューの階層化』(こぺる)

下記コードをネットで見つけて使用しているのですが、欲しい機能を追加し過ぎて
右クリックメニューが長くなり困ってます。
.Controls(4)で親メニューとし、その中に子メニューで.Controls(5)、.Controls(6)あるようにするには
.Controls(4)のmsoControlButtonをmsoControlPopupにするところまではわかったのですが、
入れ子にするコードが検索してもイマイチ分からないので教えて頂きたく質問致しました。
宜しくお願いします。

Windows:XP
EXCEL:2003

Sub 右クリックメニューに指定Macroを追加()

    With Application.CommandBars("Cell")
        .Controls.Add Type:=msoControlButton, before:=1
        .Controls(1).Caption = "指示1"
        .Controls(1).OnAction = "指示1"
        .Controls.Add Type:=msoControlButton, before:=2
        .Controls(2).Caption = "指示2"
        .Controls(2).OnAction = "指示2"
        .Controls(3).BeginGroup = True
        .Controls.Add Type:=msoControlButton, before:=3
        .Controls(3).Caption = "指示3"
        .Controls(3).OnAction = "指示3"
        .Controls.Add Type:=msoControlButton, before:=4
        .Controls(4).Caption = "指示A"
        .Controls(4).OnAction = "指示A"
        .Controls.Add Type:=msoControlButton, before:=5
        .Controls(5).Caption = "指示B"
        .Controls(5).OnAction = "指示B"
        .Controls.Add Type:=msoControlButton, before:=6
        .Controls(6).Caption = "指示C"
        .Controls(6).OnAction = "指示C"
        .Controls(7).BeginGroup = True
    End With
End Sub


 >入れ子にするコードが検索してもイマイチ分からないので

 ここ、参考にならないですか?
  ↓
 Excelの右クリックメニューに自作マクロを追加する  
http://www.seiji-tsubosaki.net/ExcelTech/ExcelProfessionalEngineerTechnic/Contents_03.htm

 (半平太) 2013/08/06(Tue) 21:55


 昨日ここにリンク張ろうかと思ったのですが、後味が悪かったのでやめたの
 だけれど、まあいいや。
[[20070923210600]]?
 BJ

半平太さん、BJさん、有難うございます。

msoControlPopupにしても、何故かCaptionが表示されず、入れ子のコードも×になっていて困っていたのですが、
書き込み頂いたのを参考に修正を重ねて原因が分かりました。
入れ子のコードが.Caption = "指示B"等とならなければいけなかったのですが、.Controls.Captionと余計なものを付けてた為だったようです。
勉強になりました、有難うございます。

とりあえず思うようになった!程度のコードで綺麗ではないかも知れませんが、後にここへ辿り着いた方の為に
自分が改変したコードを載せておきます。

Sub 右クリックメニューに指定Macroを追加()

    With Application.CommandBars("Cell")
        .Controls.Add Type:=msoControlButton, before:=1
        .Controls(1).Caption = "指示1"
        .Controls(1).OnAction = "指示1"
        .Controls.Add Type:=msoControlButton, before:=2
        .Controls(2).Caption = "指示2"
        .Controls(2).OnAction = "指示2"
        .Controls.Add Type:=msoControlButton, before:=3
        .Controls(3).Caption = "指示3"
        .Controls(3).OnAction = "指示3"
        .Controls(4).BeginGroup = True
        With .Controls.Add(Type:=msoControlPopup, before:=4)
             .Caption = "指示A"
             With .Controls.Add(Type:=msoControlButton)
                  .Caption = "指示B"
                  .OnAction = "指示B"
             End With
             With .Controls.Add(Type:=msoControlButton)
                  .Caption = "指示C"
                  .OnAction = "指示C"
             End With
        End With
    End With
End Sub

(こぺる)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.