Excel VBA質問箱 IV

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

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


9517 / 13646 ツリー ←次へ | 前へ→

【26866】SendkeyをXPで使えるようにするには? AYU 05/7/21(木) 19:00 質問[未読]
【26879】Re:SendkeyをXPで使えるようにするには? IROC 05/7/22(金) 10:00 回答[未読]
【26882】Re:SendkeyをXPで使えるようにするには? Jaka 05/7/22(金) 11:01 回答[未読]
【26883】Re:SendkeyをXPで使えるようにするには? Jaka 05/7/22(金) 11:06 発言[未読]
【26907】Re:SendkeyをXPで使えるようにするには? AYU 05/7/23(土) 5:31 お礼[未読]
【26908】Re:SendkeyをXPで使えるようにするには? IROC 05/7/23(土) 9:42 回答[未読]

【26866】SendkeyをXPで使えるようにするには?
質問  AYU  - 05/7/21(木) 19:00 -

引用なし
パスワード
   いつもお世話になります
どなたか教えてください
今までWindows98,2000では
Sendkeyを使って他のアプリケーションに
データを送って処理をしていましたが
WindowsXPだとそれが出来なくなりました
例えば下に記述したヘルプのSendkeyの使用例でも
WindowsXPではデータを遅れません

Sub TEST()

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)    ' 電卓を実行します。
AppActivate ReturnValue         ' 電卓をアクティブにします。
For I = 1 To 20            ' ループ カウンタを設定します。
  SendKeys I & "{+}", True      ' 電卓にキー コードを転送して、
Next I                  ' I の値に 1 を加算します。
SendKeys "=", True          ' 和を求めます。
SendKeys "%{F4}", True       ' Alt + F4 キーを転送して電卓を終了
 
End Sub

とても困っています
どうか宜しくお願い致します。

【26879】Re:SendkeyをXPで使えるようにするには?
回答  IROC  - 05/7/22(金) 10:00 -

引用なし
パスワード
   ウィンドウハンドルがあればSendkeyを使わずに、APIを使って対応できませんか?

電卓ならエディットボックスの子ウィンドウハンドルを取得して、
SendMessageのWM_GETTEXTで取得できます。

【26882】Re:SendkeyをXPで使えるようにするには?
回答  Jaka  - 05/7/22(金) 11:01 -

引用なし
パスワード
   こんにちは。
こっちの方が良くないですか。
こうしないと答えが210になりませんでした。

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)    ' 電卓を実行します。
AppActivate ReturnValue         ' 電卓をアクティブにします。
For I = 1 To 20            ' ループ カウンタを設定します。
  SendKeys I      ' 電卓にキー コードを転送して、
  SendKeys "{+}", True
  DoEvents
Next I

WinXpでも動きました。

【26883】Re:SendkeyをXPで使えるようにするには?
発言  Jaka  - 05/7/22(金) 11:06 -

引用なし
パスワード
   >  SendKeys I      ' 電卓にキー コードを転送して、
の , Trueとっちゃったけど意味はないです。

  SendKeys I, True のままでも良いです。

【26907】Re:SendkeyをXPで使えるようにするには?
お礼  AYU  - 05/7/23(土) 5:31 -

引用なし
パスワード
   IROC様、JAKA様お答え有り難うございました。
私の会社の生産システムのアプリケーションに
アクセス者、部署コード、データ内容、期間などの
データを転送して自分のフォルダにダウンロードする
のですがXPに変わったとたん不具合がいろいろ発生しています。
今回の場合みたいに&を使わずに一つ一つsendkeyで
転送した方が良いみたいですね。
本当に有り難うございました。

【26908】Re:SendkeyをXPで使えるようにするには?
回答  IROC  - 05/7/23(土) 9:42 -

引用なし
パスワード
   >今回の場合みたいに&を使わずに一つ一つsendkeyで
>転送した方が良いみたいですね。

最良なのは、不安定なsendkeysに頼らないことですよ。

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