excelから他のアプリにキーコードを送る
Option Explicit Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long) Sub hoge() Dim c As range Dim CB As New DataObject Dim ReturnValue ReturnValue = Shell("c:\\Program Files\\EmEditor\\emeditor.exe", vbNormalFocus) For Each c In range("A1:A9") Sleep 100 SendKeys "^a", True SendKeys "{DEL}", True SendKeys c.Value, True SendKeys "^a", True SendKeys "^q", True CB.GetFromClipboard c.Offset(0, 1).Value = CB.GetText Next c End Sub
どうでもないことだけど、ヘルプの使用例動かない。。。
何ですかこれ。。。
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 キーを転送して電卓を終了します。
ってか、そもそもこれを使うのは最終手段だよね。。。
相手の状態がわからないから、相手がちょっと考え込んだり、フォーカスがずれたりすると目も当てられない状態に。。。