こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAでのIE操作で、ENTERキーが押せません

VBAでIEの操作を勉強中です。

HTMLを整形するホームページ(https://lab.syncer.jp/Tool/HTML-PrettyPrint/)です。
左側のエリアにHTMLを入力すると右側に整形されたHTMLが表示されるものです。
手動ではなんら問題ありません。

作成したVBAから操作すると、左側のエリアにHTMLは入力されますが、右側に表示されません。
入力後にENTERキーが押されれば表示されるというところまでは解っています。
解っているんですが、VBAから押せません。
どなたかご教示願います。


以下作成したVBAです。
-----------------------------------------------------------------------
Sub testIE()
Dim IE As Object
Dim target As String
Dim wText As String

target = "https://lab.syncer.jp/Tool/HTML-PrettyPrint/"
wText = "<html><head><title>test</title></head><body><h1>test</h1></body></html>"
Set IE = CreateObject("InternetExplorer.Application")

With IE
.Visible = True
.Navigate target

Do While .Busy = True Or .ReadyState <> 4
DoEvents
Loop
Do While .Document.ReadyState <> "complete"
DoEvents
Loop

.Document.getElementsByTagName("textarea")(0).Value = wText

SendKeys "{ENTER}"

MsgBox .Document.getElementsByTagName("textarea")(1).Value
End With
End Sub

投稿日時 - 2019-07-11 11:16:17

QNo.9634199

困ってます

質問者が選んだベストアンサー

課題サイトの場合は、
.Document.getElementsByTagName("textarea")(0).Focus
↑のようなコードで、フォーカスを当て、
その後に、"{ENTER}"を送ることで解決できるようです。

Sub testIEx()
 Dim IE As Object
 Dim target As String
 Dim wText As String

 target = "https://lab.syncer.jp/Tool/HTML-PrettyPrint/"
 wText = "<html><head><title>test</title></head><body><h1>test</h1></body></html>"
 Set IE = CreateObject("InternetExplorer.Application")

 With IE
  .Visible = True
  .Navigate target

  Do While .Busy = True Or .ReadyState <> 4
   DoEvents
  Loop
  Do While .Document.ReadyState <> "complete"
   DoEvents
  Loop

  .Document.getElementsByTagName("textarea")(0).Value = wText
  .Document.getElementsByTagName("textarea")(0).Focus

  SendKeys "{ENTER}"

  MsgBox .Document.getElementsByTagName("textarea")(1).Value
 End With
End Sub

投稿日時 - 2019-07-13 09:01:55

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問