やりたい事
- Excel VBA でウェブのHTMLソースを保存する。
下準備
エクセルを起動 → [alt] + [F11] → [ツール] → [参照設定] → 下記にチェックを入れる → [OK]
[ファイル] → [名前を付けて保存] → [Excel マクロ有効ブック (*.xlsm)] を選択 → 任意のファイル名を入力 → [保存]
VBA スクリプト
www.yahoo.co.jp を data.txtに保存するサンプル。
Sub web2()
Dim o As Object
Set o = CreateObject("WinHttp.WinHttpRequest.5.1")
Dim filename As String
filename = "data.txt"
Dim URL As String
URL = "https://www.yahoo.co.jp"
o.Open "GET", URL
o.send
Debug.Print o.responseText
Call SaveAsText2(filename, o.responseText)
End Sub
Sub SaveAsText(filename As String, d As String)
'Microsoft ActiveX Data Objects 6.1 Library
Dim output As ADODB.Stream
Set output = New ADODB.Stream
With output
.Type = adTypeText
.Charset = "UTF-8"
.LineSeparator = adLF
.Open
End With
output.WriteText d, adWriteLine
output.SaveToFile filename, adSaveCreateOverWrite
output.Close
End Sub
実行方法
[開発] → [マクロ] → [web2] → [実行(R)]
メモ
- xlsm 形式で保存をしないと、次に読み込んだ時にマクロが消える。
- ファイルはドキュメント直下に作成される。変更したい場合はファイル名をフルパスで指定する事。
- InternetExplorer.Application よりもこちらの方が高速。