- 締切済み
VBA IE操作でソースの表示の内容をテキスト化
IEの右ボタンクリック→ソースの表示の内容をテキストファイル化 するにはどうすれば、良いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tkf-
- ベストアンサー率58% (821/1398)
回答No.2
何らかの業務システムの一部なのかわかりませんが、 その実装、やめておいたほうがいいです。 Windows+IEの組み合わせでしか動作しませんし、サーバー側の実装が変わればおじゃんです。 スクリプトで取得とソースを表示の取得で内容が違うのは、サーバー側でブラウザの種類(UserAgent)を見て返す値を変えているのではないでしょうか。
- tkf-
- ベストアンサー率58% (821/1398)
回答No.1
ページをファイルに保存することが目的なら、以下などを参考に。 https://so-zou.jp/software/tech/programming/vba/sample/web.htm
質問者
補足
すみません。最初の質問で説明が足らなかったので 回答の通りで Dim htmlDoc As HTMLDocument Set htmlDoc = objIE.document Set objAll = objIE.document.all For iAllCnt = 0 To objAll.Length - 1 Debug.Print objAll(iAllCnt).outerHTML Next で出てくる内容と 実動作でIEの右ボタンクリック→ソースの表示で出力した内容が 違うので 直接VBAで実動作の通りに右ボタンクリック→ソースの表示の内容をテキストファイル化 をさせる方法の質問です。
補足
解決しました。 1.適当な位置でマウス右ボタンクリック SetCursorPos 1469, 408 '適当な座標 RightClick Sub RightClick() mouse_event 8 mouse_event 16 End Sub 2. ソースの表示(V)、名付けて保存(CTRL+SHIFT+S)、ファイル名の入力、保存(ENTER) ウインドゥの消去(ALT+F4) Application.SendKeys "V" Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "^+(S)" Application.SendKeys "{NUMLOCK}" Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys Fname Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "~" Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "%{F4}" 以上で、できました