- ベストアンサー
現在開いているWebページをエクセル保存したい
- VBAで作成したコードを使用して、指定したURLをエクセルで保存する方法について教えてください。
- 現在開いているページをエクセルに保存する方法をVBAで実現したいです。
- InternetExplorer.Applicationを使用して、現在開いているWebページをエクセルに保存する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CDOというのは初めて扱ったので、参照設定してみました。 g_stmの型は何? 調べてみると、ADODB.Streamの様なので、こちらも無駄に参照設定。(As Objectでも十分ですが) 一応動いている様に見えますが、ご希望のものが保存出来ているのかは判断つきかねます。ご参考まで。 Declare Function FindWindow Lib "User32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Sub test() Dim ie As WebBrowser Dim g_msg As CDO.Message Dim g_stm As ADODB.Stream Set ie = getTopIeTab If ie Is Nothing Then Exit Sub Set g_msg = New CDO.Message g_msg.CreateMHTMLBody ie.LocationURL, 0, "", "" DoEvents Set g_stm = g_msg.GetStream DoEvents g_stm.SaveToFile GetDesktopPath & "\test.txt", 2 Set g_stm = Nothing Set g_msg = Nothing Set ie = Nothing End Sub 'IEの最前面Tabを取得 Function getTopIeTab(Optional matchWord As String) As WebBrowser Dim hWnd As Long Dim ie As WebBrowser Dim targetIe As WebBrowser Const IEClassName As String = "IEFrame" 'IEのClass名 hWnd = FindWindow(IEClassName, vbNullString) For Each ie In CreateObject("Shell.Application").Windows() If hWnd = ie.hWnd Then ie.StatusBar = True ie.statusText = CStr(hWnd) If ie.statusText = CStr(hWnd) Then If matchWord = "" Then Set getTopIeTab = ie ie.statusText = "" Exit Function Else If InStr(ie.LocationURL, matchWord) > 0 Then Set getTopIeTab = ie Exit Function End If End If End If End If Next ie Set getTopIeTab = Nothing End Function Private Function GetDesktopPath() As String Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("Wscript.Shell") GetDesktopPath = wScriptHost.SpecialFolders("Desktop") Set wScriptHost = Nothing End Function
お礼
誠にありがとうございます。 できました!