dポイントプレゼントキャンペーン実施中!

http://abc.com/def/ghi001.htmlからhttp://abc.com/def/ghi150.html
までの約150ページを.mht形式で一気に保存したいです。
ご存知の方宜しくお願い致します。

A 回答 (1件)

#ここでは、URL文字列に勝手にリンクが設置され、コーディング内に「?」が入ってしまいますので、「http」は「ht" & "tp」にしてあります。


#コピペの後「http」に変えてください。

>VBSでWebpageを一気に取得
とのことですが、Excel VBA でしたら、
●EXCEL VBAでWEBページ保存2
http://okwave.jp/qa4253824.html

KenKen_SP さんの [回答番号:No.3] にある
>■案2. MHT ファイルでも良ければ...な方法(Windows2000以降限定)
でほぼ可能のようです。
'-------------------------------------------------------------------
Sub SaveMHT()
 Const cdoSuppressNone As Long = 0
 Const adSaveCreateOverWrite As Long = 2
 Dim i As Integer
 Dim url As String
 Dim outFilename As String
 Dim msg As Object ' // CDO.Message
 Dim stm As Object ' // ADODB.Stream
 Set msg = CreateObject("CDO.Message")
 For i = 1 To 150
  url = "ht" & "tp://abc.com/def/ghi" & Format(i, "000") & ".html"
'保存先フォルダ・ファイル名の指定
  outFilename = "D:\hoge\ghi" & Format(i, "000") & ".mht"
  msg.CreateMHTMLBody url, cdoSuppressNone, "", ""
  Set stm = msg.GetStream
  stm.SaveToFile outFilename, adSaveCreateOverWrite
 Next
 stm.Close
 Set stm = Nothing
 Set msg = Nothing
End Sub
'-------------------------------------------------------------------

 これを WSH に翻訳してみましたら、こんな感じでしょうか?
 不要なステートメントがありましたら、適当に調節なさってみてください。

SaveMHT.vbs
'-------------------------------------------------------------------
Option Explicit

Const cdoSuppressNone = 0
Const adSaveCreateOverWrite = 2
Dim i, url
Dim outFilename
Dim msg
Dim stm
Set msg = wscript.CreateObject("CDO.Message")
For i = 1 To 150
url = "ht" & "tp://abc.com/def/ghi" & Right("000" & i, 3) & ".html"
'保存先フォルダ・ファイル名の指定
outFilename = "D:\hoge\ghi" & Right("000" & i, 3) & ".mht"
msg.CreateMHTMLBody url, cdoSuppressNone, "", ""
Set stm = msg.GetStream
stm.SaveToFile outFilename, adSaveCreateOverWrite
Next
stm.Close
Set stm = Nothing
Set msg = Nothing
    • good
    • 0
この回答へのお礼

出来ました!本当にありがとうございます!

お礼日時:2009/06/14 19:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!