プロが教えるわが家の防犯対策術!

以下のご質問となります。
お詳しい方、いらっしゃいましたら、どうぞよろしくお願いいたします。

●実施したい処理
Excel VBAにて、
1.別のワークブックのマクロを呼び出して実行する。
2.(呼び出したマクロ実行中にメッセージボックスが表示されるので)
  一律、OKをクリックする


●前提
・Excelはoffice365を使用しています。
・呼び出し先の別ワークブックのマクロの修正はできません。


●質問点
2.の処理をどのようにするかで悩んでいます。以下の2点を教えて頂けると幸いです。

①呼び出し元で、呼び出したマクロのメッセージボックスのイベントを拾って、
処理する(今回はOKをクリック)ということはできるのでしょうか。

②こちらができないとすると、OKクリックはsendkeyで{Enter}を押下することを考えています。①の質問と一部重複しますが、呼び出し元で、呼び出したマクロの処理が入力待ち状態(メッセージボックスが表示された状態)になっていることをハンドリングすることは可能なのでしょうか?



よろしくお願いいたします。

A 回答 (2件)

こんばんは、


Windows APIを使用する方法になりますが、Functionになっているので、
こちらがわかり易いと思います。
http://gdipluscode.sakura.ne.jp/etc/controlother …

Application.Runと組み合わせてローカルで検証してみましたが、
不要箇所を削除して1行変更、1行追加のみで、問題なく機能しました。
(ご質問者様の状況が分からないので、、確かではありません)
    • good
    • 0
この回答へのお礼

こんばんは。
情報連携いただき、ありがとうございます。

いただいたリンク先のソースを参考に、
当方の環境にてコーディングしてみたところ、
期待する動作を実現することができました!

とても助かりました。
この度は、ありがとうございました。

お礼日時:2020/06/13 20:44

検証はしてないですけ、以下の2つを組み合わてみては如何でしょうか?



別のブックのマクロを実行(Run メソッド)
https://excelwork.info/excel/runmethod/

マクロでメッセージボックスの操作(クリック)
https://teratail.com/questions/151688
    • good
    • 0
この回答へのお礼

早速、ありがとうございます。
しかしながら、いただいた2つ目のリンクを開くことができませんでした。。
もう少し時間をおいてから、開けるか確認してみます。

よろしくお願いいたします。

お礼日時:2020/06/13 12:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A