teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記の日時を正しいものに修正

2019/08/23 13:59

投稿

TanakaHiroaki
TanakaHiroaki

スコア1065

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  objIE.navigate urlName, , , , headValue
35
35
  End Sub
36
36
  ```
37
- ---#8/19# 追記
37
+ **---追記:2019/08/23 22:59**
38
38
  VBAのSendKeysは安定しないので、WshShellオブジェクトのSendKeysを試してみてください。
39
39
  メモ帳を起動して文字を送る事例を紹介しますので、参考にしてください。
40
40
  ```VBA

1

WshShellオブジェクトのSendKeysを追記

2019/08/23 13:59

投稿

TanakaHiroaki
TanakaHiroaki

スコア1065

answer CHANGED
@@ -33,4 +33,54 @@
33
33
  headValue = "Authorization: Basic " & EncodeBase64(sId & ":" & sPass)
34
34
  objIE.navigate urlName, , , , headValue
35
35
  End Sub
36
+ ```
37
+ ---#8/19# 追記
38
+ VBAのSendKeysは安定しないので、WshShellオブジェクトのSendKeysを試してみてください。
39
+ メモ帳を起動して文字を送る事例を紹介しますので、参考にしてください。
40
+ ```VBA
41
+ '参考サイト:Windows管理者のためのWindows Script Host入門
42
+ '第5回 WshShellオブジェクトの詳細(1)(4 / 4)
43
+ 'http://www.atmarkit.co.jp/ait/articles/0407/08/news101_4.html
44
+
45
+ '②WshShellオブジェクトのSendKeysで記録
46
+ Sub memo_txt2()
47
+ Dim rc As Long
48
+ rc = Shell("notepad.exe", vbNormalFocus)
49
+ DoEvents
50
+ Debug.Print rc
51
+ If rc = 0& Then
52
+ MsgBox "メモ帳の起動に失敗しました。"
53
+ Exit Sub
54
+ End If
55
+
56
+ With CreateObject("Wscript.Shell")
57
+ Do Until .AppActivate("無題 - メモ帳")
58
+ DoEvents
59
+ Loop
60
+
61
+ Dim sMessage As String
62
+ sMessage = "WshShellオブジェクトのSendKeysで記録されました。"
63
+ If Len(sMessage) <> LenB(StrConv(sMessage, vbFromUnicode)) Then
64
+ '日本語の場合、クリップボードへ入れてCTRL+v
65
+ Call CopyToClipboad2(sMessage)
66
+ .SendKeys "^v" '小文字にすべし
67
+ Else
68
+ .SendKeys sMessage
69
+ End If
70
+ End With
71
+ End Sub
72
+ ```
73
+ ```VBA
74
+ 'クリップボードへ文字列を格納する関数(改良版)
75
+ 'https://www.excel-chunchun.com/entry/AutoFilterPlus#クリップボード関連
76
+
77
+ Private Sub CopyToClipboad2(ByVal strInput As String)
78
+ With CreateObject("Forms.TextBox.1")
79
+ .MultiLine = True
80
+ .Text = strInput
81
+ .SelStart = 0
82
+ .SelLength = .TextLength
83
+ .Copy
84
+ End With
85
+ End Sub
36
86
  ```