dポイントプレゼントキャンペーン実施中!

VBA初心者です。ExcelのVBAで他のアプリケーションを操作している際、操作先のアプリケーションでダイアログボックスが立ち上がる操作があり、sendkeyが効かず止まってしまうのですが、何か方法があるのでしょうか?
アクティブなダイアログボックスに対してsendkeyを行う。などの方法をご存知の方、教えてください。
極力マウス位置や左クリックのイベントを使うのは避けたいです。

質問者からの補足コメント

  • 補足します。
    Excelから開くアプリケーションはAutoCADです(2015)
    やりたい事としては「ExcelからCADを操作し、クイック選択をする。」となります。CADのクイック選択はダイアログボックスが避けれない仕様のようで悩んでおります。

      補足日時:2016/12/14 12:17

A 回答 (2件)

こんにちは。



VBAから、Sendkey を発信しても、あくまでもExcelアプリ内だけで、外部には変化を与えることは不可能だと思います。

だから、例えば、Win32 APIの PostMessage で、Sendkey の代わりにの命令を送るとか、場合によっては、Wsh でも、命令を送ることは可能です。それが難しいからせいか、UWSC を使う人もいますね。(UWSCは、わかれば分かるほど、『すごい』です)
http://www.uwsc.info/
    • good
    • 0

お疲れ様です。



sendkeyは、アプリが起動させたダイアログに対して行うのでしょうか?

その場合は、アプリの画面を取得し、その画面ならsendkeyを実行する様にすれば良いのではないでしょうか?

起動しているアプリが何なのかわからないので、完全な回答は無理だと思います。
    • good
    • 0
この回答へのお礼

sendkeyはアプリに対して行い、その操作の途中でダイアログボックスが起動しアクティブになる工程があります。起動したダイアログボックスに対してもsendkeyで操作を行いたいのですが、やり方がわかりません。
例えますと、ExcelのVBAでメモ帳を開きsendkeyで名前を付けて保存を実行すると保存先についてのダイアログボックスが表示されるが、そのダイアログボックスに対してのsendkeyの方法がわからない。というような状況です。わかりにくくてすいません。

お礼日時:2016/12/14 12:25

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