Sub TEST_Sendkey01()は、エクセルVBAでメモ帳を立ち上げ、データを転記するコードです。
既存のメモ帳に追加でデータ転記する方法がわからない
エクセルVBAで開いている他のアプリにデータ転記
Sub TEST_Sendkey01() は、エクセルVBAでメモ帳を立ち上げ、データを転記するコードです。
期待通りに作動します。
http://okwave.jp/qa6760498.html
Sub TEST_Sendkey01()
Dim App As String, tmp As String
Dim Ret, myAr
Dim i As Long, n As Long
App = "notepad.exe"
MsgBox App & "を実行します"
Ret = Shell(App, vbNormalFocus)
If Ret Then
AppActivate Ret, True
Else
MsgBox "失敗しました。"
Exit Sub
End If
myAr = Split("ABC101,BBB202,CCC303", ",")
For n = 1 To 2
For i = 0 To UBound(myAr)
SendKeys myAr(i)
SendKeys "{TAB}"
Application.Wait Time:=Now + TimeValue("00:00:01")
Next i
SendKeys "{ENTER}"
Next n
AppActivate Application.Name, False
MsgBox "終了しました。"
AppActivate Ret
End Sub
質問は、あらたにメモ帳を立ち上げるのではなく、すでに開いている既存のメモ帳(TESTNOTE.txt)のデータに追加でデータを転記する方法です。
下記のようにしてみましたが、 AppActivate "TESTNOTEtxt - メモ帳" の段階で「実行時エラー5 プロシージャの呼び出し、または引数が不正です」となってしまいます。
どのように記述すればよいのでしょうか?
Sub TEST_Sendkey02()
Dim myAr
Dim i As Long, n As Long
AppActivate "TESTNOTEtxt - メモ帳"
myAr = Split("D11,E22,F33", ",")
For n = 1 To 2
For i = 0 To UBound(myAr)
SendKeys myAr(i)
SendKeys "{TAB}"
Application.Wait Time:=Now + TimeValue("00:00:01")
Next i
SendKeys "{ENTER}"
Next n
AppActivate Application.Name, False
MsgBox "終了しました。"
AppActivate "TESTNOTEtxt - メモ帳"
End Sub
スミマセン,すこしイジりました。
Sub TEST_Sendkey02()
Dim myAr
Dim i As Long, n As Long
AppActivate "TESTNOTE.txt", True
myAr = Split("D11,E22,F33", ",")
For n = 1 To 2
For i = 0 To UBound(myAr)
SendKeys myAr(i)
SendKeys "{TAB}"
Next i
SendKeys "{ENTER}", True
Next n
AppActivate Application.Name, False
MsgBox "終了しました。"
AppActivate "TESTNOTE.txt"
End Sub
お礼
な、なんと・・・・。 拡張子の前のドットが抜けてたぁ?! Σ( ̄ロ ̄lll) ほんと間抜けな話でした。お笑いください。 有難うございました。