• 締切済み

【VBA】 VBAを使ってExcelにSendMessageしてメニューを実行したい

エクセルにおいて、VBAを使ってExcelに対してSendMessageをおこないメニューを実行したいのですが、メニューのSendMessageの引数WPARAMとLPARAMに 何を渡せば良いのでしょうか?SPY++を使ってメニューを実行したときにExcelに送られるWM_COMMANDを監視していましたがWM_COMMANDが見つかりませんでした。 ご存知の方、ご教授お願いします。 ちなみに、オートシェイプ選択時に「書式」-「オートシェイプ」メニューを実行し、書式設定ダイアログが表示され、オートシェイプの書式設定を変更するのが目的です。(VBAを使って書式設定のダイアログを表示する必要あり) SendKeysステートメントを使ってやってみましたがダメでした。この場合、モードレスダイアログに書式設定するコマンドボタンを配置し、そのボタンをクリックしたときにSendKeysを実行するもので、モードレスダイアログを表示している間はキーがモードレスダイアログに送られると判断してSendKeysの使用はやめました。

みんなの回答

回答No.1

>書式設定ダイアログ 別にダイアログを出さないでも、Shapeオブジェクトの書式は変更可能ですが。。。 マクロを記録して見ると、書くべきコーディングの内容も出ていますよ。 ダイアログが必須であるのであれば、だめですが。。。

pugoo
質問者

お礼

ご回答ありがとうございます。 ダイアログは必須です。ユーザがメニューから書式設定のダイアログを出すのではなく、ユーザフォームに配置したボタンをクリックして出てくるようにしたいのです。

関連するQ&A

専門家に質問してみよう