IEの画像を保存、又はコピーしてExcel貼り付けする方法

解決


カイト  2007-08-17 00:15:19  No: 99326  IP: [192.*.*.*]

初めて質問させていただきます
現在、以下の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"
もし分かる方がいらっしゃいましたらご教授ください

編集 削除
特攻隊長まるるう  2007-08-17 20:44:35  No: 99327  IP: [192.*.*.*]

>色々調べた結果以下の過去ログが役立ちそうなのですがサンプルのリンクが切れていました
http://msdn.microsoft.com/library/ja/jpwebwk/essentials/webmen/webteam03052001.asp

編集 削除
YAS  2007-08-18 18:32:43  No: 99328  IP: [192.*.*.*]

動けばよいという程度であれば,次のコードでできます。
参考にしてください。

参考にした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

編集 削除
モグ  2020-06-23 06:41:52  No: 148852  IP: [192.*.*.*]

>1.VBAからIEを起動し指定URLを開く
>2.IEに表示されている一つ目の画像(GIFファイル)をローカルファイルに任意の名前で保存
できれば表示されている一つ目の画像をコピーし、Excelに貼り付ける方法も知りたいです

一つ目ではなく例えば4つ目の画像をコピーする場合はどうしたらよいでしょうか?

編集 削除