Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2294 / 13644 ツリー ←次へ | 前へ→

【68914】最小化とフォーカス がんばります 11/4/27(水) 9:50 質問[未読]
【68915】Re:最小化とフォーカス neptune 11/4/27(水) 10:50 発言[未読]
【68916】ありがとうございます がんばります 11/4/27(水) 13:22 お礼[未読]

【68914】最小化とフォーカス
質問  がんばります  - 11/4/27(水) 9:50 -

引用なし
パスワード
   最小化・フォーカス・Application.SendKeysの組み合わせでつまづいています。

.SendKeysの送信先はShell呼び出しのプログラムで
Application.SendKeys (例)"9~" で次の項目に移動し
同じように.SendKeys で入力していくようなアプリケーションです
誤入力を防ぐためVBAで自動入力にしようと思っています。

そこで質問なのですが
CreateObject("Shell.Application").ToggleDesktopで最小化
AppActivate"○○"でフォーカス移動
の後に.SendKeys を使うとうまく入力ができません。
 (最小化しないで表示しているときは.SendKeys で正常に機能しました。)
最小化してフォーカスを持ってるアプリケーションに自動入力する
良い方法はありますか?

【68915】Re:最小化とフォーカス
発言  neptune  - 11/4/27(水) 10:50 -

引用なし
パスワード
   ▼がんばります さん:
難易度は数段高くなりますけど、windowへ直接sendmessageでデータを
送るとか。

EnumWindows、enumchildwindow,findwindow, GetWindow、とかその他必要なAPI
で書くHWNDを取得して、sendmessageでそのwindowに直接メッセージを
送りつける。。。

例えばWM_SETTEXTを使うとテキストを設定できる。

参考
WIN32 API を使用してウィンドウを列挙する方法
ht tp://support.microsoft.com/kb/183009/ja

あっ、私自身はかなり使ってないし、結構面倒なのでサンプルプログラムは勘弁して下さい。
キーワードは沢山書いたのでそれらでググったら沢山サンプルはあります。

#抜けたら困るようなデータ、失敗したら困るようなデータを扱う際は
sendkeysを使うのは不安定なのでできる限り使うべきではないです。
ex:例えば見えないけど起動しているソフトが何か始めた時など、不安定に
なる要因は沢山ありますから。
 失敗しても良いものだけに使いましょう。

【68916】ありがとうございます
お礼  がんばります  - 11/4/27(水) 13:22 -

引用なし
パスワード
   ▼neptune さん:
回答ありがとうございます

sendmessageというのを頼りに調べてみます。

2294 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free