- 締切済み
ExcelVBAでEXEファイルを動かしたい
Excel VBAで下記のexeファイルを開き、操作をしたいのですが、やり方がわかりません。 http://www5b.biglobe.ne.jp/~t-kamada/CBuilder/pcdgraph.html 1)このプログラムを起動し 2)Dataというフォルダにある、inputというタイトルのcsvファイルを読み込ませる(このプログラムでいうところの、ファイルボタンをクリックし、inputファイルをクリックすることにあたります) 3)骨格曲線というチェックボックスにチェックをいれ、グラフ出力をクリック、プログラムを閉じる という流れをやりたいのですが、VBA上でexeプログラムのチェックボックスにチェックをいれ、ボタンを押すということをどうやるのかがわからず、困っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- a_green_wind
- ベストアンサー率75% (3/4)
No.1です。 プログラムを見ました。 「ファイルボタンをクリック」の部分はSendKeysでAlt+Fを送ればOKです。ファイル名の指定もSendKeysで可能です。 骨格曲線というチェックボックスは、プログラムの子ウィンドウとしてウィンドウ キャプション「骨格曲線」、クラス名「TCheckBox」になっていますので、簡単に見つかるはずです。 「グラフ出力をクリック」はどのような操作なのか不明です(「グラフ」ボタン? ファイル出力?)。 「プログラムを閉じる」もSendKeysでAlt+X Alt+Yを送ればよいでしょう。
- a_green_wind
- ベストアンサー率75% (3/4)
http://www5b.biglobe.ne.jp/~t-kamada/CBuilder/pcdgraph.html が見つからないので一般的な話になりますが、 プログラムを起動した後、ボタン・チェックボックスのウィンドウをクリックすることになります。 ボタン・チェックボックスのウィンドウはあらかじめ SPYXX.EXE でコントロールIDなどを確認しておくと便利です。 あとは GetWindow GetDlgItem などを駆使することになります。 クリックは PostMessage で WM_LBUTTONDOWN WM_LBUTTONUP を送ればよいかと思います。 ボタン・チェックボックスのウィンドウが定義されていない場合はプログラム内の手近な子ウィンドウからの相対位置を調べておき、座標位置指定でクリックすることになります。 実際に苦労するのは、クリックのタイミングだと思います。 人間のクリックはゆっくりなので問題ありませんが、プログラムは速いので画面が切り替わる前にクリックしたり、画面が切り替わっていてもプログラムが異常な反応をしたり、固まったりする場合があります。
補足
リンクが上手く貼れておらずすみません。pcdgraphというプログラムです。 http://www5b.biglobe.ne.jp/~t-kamada/CBuilder/pcdgraph.htmです。 VBAをはじめてまだ1ヶ月で、おっしゃられているほとんどのことがよくわからないため、一つ一つキーワードを調べてみたいと思います。100個程度のデータを扱うのならまだ手動で良いのですが、数千となると本当に大変なので、非常に困っています。