お世話になります。
VBAで作成しております。
現在(1)のコードで、「指定したURL」をエクセル保存しているのですが、
「現在開いているページ」エクセル保存したいのですが
どのようにすればよいでしょうか?
お手数ですが何卒宜しくお願いします。
---------(1)-------------
Set g_msg = CreateObject("CDO.Message")
g_msg.CreateMHTMLBody ★指定したURL, 0, "", ""
DoEvents
Set g_stm = g_msg.GetStream
DoEvents
g_stm.SaveToFile ★書き出すファイル名.xls, 2
----------途中までがんばったところ----------
Dim objIEログイン As Object
Set objIEログイン = CreateObject("InternetExplorer.Application")
objIEログイン.Navigate "指定したURL"
★★★★★★objIEログインを使用して、エクセルに保存したい★★★
No.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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) バックグラウンドのプロセスのエクセルを閉じる方法 4 2022/05/12 15:39
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
HTMLとXHTML
-
FireFoxに対応するホームページ...
-
プルダウン(リストボックス)の...
-
<IMG>のALIGN属性値「absmiddle...
-
HTMLのバージョンの確認方法は?
-
VBA オブジェクトが必要です
-
DOCTYPE宣言はしなくていいの?
-
エクセルでURLからタイトルのみ...
-
ブラウザによる表示の違い
-
HTML5のDOCTYPE宣言はなぜ標準...
-
PDFファイルを表示するためのHT...
-
VBAでgetElementByTagName
-
アプレット XXXXXX notinited ...
-
CSSハックについて・・・
-
DOCTYPE
-
doc As HTMLdocumentのコンパイ...
-
dreamweaverのデザインビュー
-
IE3.02 ,IE4 , IE5 ,IE6 すべて...
-
トランジションとmarqueeについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
Macで見るとページが崩れます。
-
VBA オブジェクトが必要です
-
doc As HTMLdocumentのコンパイ...
-
WindowsとMacでのChromeのスタ...
-
スマホでページ内リンクができない
-
プルダウン(リストボックス)の...
-
<IMG>のALIGN属性値「absmiddle...
-
WEBページからのメッセージをVBAで
-
HTML文書を上書き保存してもブ...
-
HTMLのバージョンの確認方法は?
-
cssレイアウトでSafariだけがど...
-
VBAでgetElementByTagName
-
DOCTYPE宣言はしなくていいの?
-
tabキーによるfocusの当たり方...
-
DeepLでエクセルのA列の英文の...
-
エクセルでURLからタイトルのみ...
-
ブラウザやOSによる表示の違...
-
webページの有効期限が切れてい...
-
CSSやJavaScriptのバージョン指定
おすすめ情報