With Application__ With .CommandBars("Shapes")__ .Reset__ With .Controls.Add(Type:=msoControlPopup, before:=1)__

    With Application
         With .CommandBars("Shapes")
            .Reset
            With .Controls.Add(Type:=msoControlPopup, before:=1)

とか
        With .CommandBars("Connector")
            .Reset
            With .Controls.Add(Type:=msoControlPopup, before:=1)

とか
       With .CommandBars("Curve")
            .Reset
            With .Controls.Add(Type:=msoControlPopup, before:=1)

のコードを実行しても右クリックポップアップメニューが動かないので
Excel 2010でのコードの書き方

回答
回答

Excel2003まではオートシェイプなどの図形で右クリックした時のメニューは「Shapes」にコマンドを追加することで変更出来ましたが、

Excel2007以降は大きく変更されたためか基本的にその方法では変更出来なくなりました。

以下のサンプルを実行すればわかるかと思いますが、Excel2003までは、オートシェイプの右クリックメニューに「abc」が追加されますが、Excel2007以降は追加されません。

Sub test1()
    With Application
        With .CommandBars("Shapes")
            .Reset
            With .Controls.Add(Type:=msoControlPopup, before:=1)
                .Caption = "abc"
            End With
        End With
    End With
End Sub

しかし、以下のサンプルを実行すればExcel2007以降でも正しく追加されているのがわかります。

Sub test2()
Application.CommandBars("Shapes").ShowPopup
End Sub

ので、図形に「test2」のマクロを登録するとかの方法で代替してはどうでしょうか。(右クリックではなく、シングル左クリックになりますが)

※私は、Excel2007以降は、CommandBarsオブジェクトの中にはオートシェイプで右クリックしたメニューと同じものがないと思われるので、変更出来ないと考えています。

 

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

 
 

質問情報


最終更新日 2020年9月03日 表示 2,693 適用先: