初めて質問させていただきます
現在、以下の2の実現方法が分からない状況です
1.VBAからIEを起動し指定URLを開く
2.IEに表示されている一つ目の画像(GIFファイル)をローカルファイルに任意の名前で保存
できれば表示されている一つ目の画像をコピーし、Excelに貼り付ける方法も知りたいです
色々調べた結果以下の過去ログが役立ちそうなのですがサンプルのリンクが切れていました
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200407/04070043.txt
IEの起動は「三流君VBAでInternetExplorer.Applicationを操作する(IE操作)
」を参考して下記のようにしています
IEオブジェクトの作成
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://www.yahoo.co.jp"
もし分かる方がいらっしゃいましたらご教授ください
>色々調べた結果以下の過去ログが役立ちそうなのですがサンプルのリンクが切れていました
http://msdn.microsoft.com/library/ja/jpwebwk/essentials/webmen/webteam03052001.asp
動けばよいという程度であれば,次のコードでできます。
参考にしてください。
参考にしたWebページ
「プログラムでクリップボードに IMG 要素をコピーする方法」
http://support.microsoft.com/kb/293125/ja
'「Microsoft HTML Object Library」を参照設定してください。
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://www.yahoo.co.jp"
Const COMPLETE = 4
While objIE.readyState <> COMPLETE
DoEvents
Wend
Dim doc As HTMLDocument
Set doc = objIE.Document
Dim elc As IHTMLElementCollection
Set elc = doc.getElementsByTagName("img")
Dim el As IHTMLElement
For Each el In elc
Dim src As String
If Right(el.getAttribute("src"), 4) = ".gif" Then
Dim el2 As IHTMLElement2
Set el2 = doc.body
Dim ctrlRange As IHTMLControlRange
Set ctrlRange = el2.createControlRange
Dim cel As IHTMLControlElement
Set cel = el
Call ctrlRange.Add(el)
Call ctrlRange.execCommand("Copy")
Exit For
End If
Next
ActiveSheet.Paste
>1.VBAからIEを起動し指定URLを開く
>2.IEに表示されている一つ目の画像(GIFファイル)をローカルファイルに任意の名前で保存
できれば表示されている一つ目の画像をコピーし、Excelに貼り付ける方法も知りたいです
一つ目ではなく例えば4つ目の画像をコピーする場合はどうしたらよいでしょうか?
ツイート | ![]() |