次の方法で共有

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

Anonymous
2010-09-14T09:57:06+00:00

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でのコードの書き方

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-09-16T06:43:53+00:00

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オブジェクトの中にはオートシェイプで右クリックしたメニューと同じものがないと思われるので、変更出来ないと考えています。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-09-16T10:37:22+00:00

    ぽろむぽろむさん、お返事いただきましてありがとうございました。

    End With まで書くと長くなるので、省略したということです。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-09-16T10:30:20+00:00

    みながさん、お返事いただきましてありがとうございました。

    私も、そう思います。

    いろいろとアドバイスをいただきありがとうございました。

    今後ともよろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2010-09-15T12:12:33+00:00

    With に対する End With がないから…というオチではありませんでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2010-09-15T02:44:01+00:00

    kwsw さん、こんにちは。

    Excel 2010 で投稿していただいたコードを実行しても、動作しないということでしょうか。

    どのように動かないかについて、もう少し具体的な情報をいただけると、みなさんからの情報も集まりやすくなると思いますよ。

    ・kwsw さんが行いたい処理について

     結果的に何が行いかわかると、いろいろなアイデアが集まってくると思います

    ・どのように動かないかについて

     例 : コードを実行すると、実行時エラーのメッセージがあらわれる

     ※メッセージがある場合は、メッセージの詳細を正確に書いていただけるとよいと思います。

    ・以前の Excel のバージョンで動作していた場合は、以前のバージョンもわかるとよいと思います

    ・サンプルコード

     みなさんが動作を確認できるような、簡単なコードがあるとよいと思います。

    また、「このような記述を試してみたが、この部分がうまくいかない」という感じで、実際に試した結果をもとに質問していただくと、他の方も、気持ちよくアドバイスができるかなと思います。

    この処理について、よいアイデアをお持ちの方がいれば、ぜひご投稿よろしくお願いします。


    石田 優 – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません