• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAでIE画面データの取り込みかた)

ExcelVBAでIE画面データの取り込みかた

このQ&Aのポイント
  • ExcelVBAを使用してすでに開いているIE画面のデータを取り込む方法を教えてください。
  • このページの記述を見てYahoo!のページは取り込むことができましたが、新たにURLを指定せずに取り込む方法を知りたいです。
  • ExcelVBAでIE画面のデータを取り込む際に、すでに開いている画面からデータを取得する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.3

前回の回答を少し変更します。 If ie.LocationURL Like "*yahoo.co.jp*" Then  ↓ If ie.LocationURL Like "*http://*" Then でわ、首尾よく行きますように祈っています。

emaxemax
質問者

お礼

なるほどワイルドカードでしね。 ありがとうございました。 取り込みたい画面以外にもIEが開いていると、予期しないアクティブではない画面をコピーするようですがIEが一つだけではうまくいきました。 どうやってアクテイブ、というのかどうかわかりませんが、最後に開いたIE画面をとり込めるかについては別の質問を立てようと思います。

その他の回答 (2)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

こんにちわ これでどうですか。 Sub test1() 'URLを調べる Dim shl As Object Dim ie As Object Dim x As Object Dim ファイル有り As Boolean ファイル有り = False Set shl = CreateObject("Shell.Application") For Each ie In shl.Windows() If ie.LocationURL Like "*yahoo.co.jp*" Then 'または、 If ie.LocationURL = "http://auctions.yahoo.co.jp/" Then ファイル有り = True Exit For End If Next If ファイル有り Then Set x = New DataObject x.SetText ie.document.documentElement.innerText x.PutInClipboard ActiveSheet.PasteSpecial End If Set x = Nothing Set ie = Nothing Set shl = Nothing End Sub

emaxemax
質問者

お礼

なんどもご回答ありがとうございます。 ご教示のコードでヤフーのデータ貼り付けは出来ました。 ありがとうございます。 ただ、わたしの質問のしかたが悪かったようです。 実際にはデータをコピーしたいIEの画面が何であるかはその都度異なるのです。 つまり、そのとき開いている(アクティブになっている)IE画面のデータをエクセルに張りたいのです。 そのためURLの指定が出来ないのです。 どうしたらよいのでしょうか?

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.1

こんにちわ。これを利用してください。 Sub test() 'URLを調べる Dim shl As Object Dim wnd As Object Set shl = CreateObject("Shell.Application") For Each wnd In shl.Windows() Debug.Print wnd.LocationURL Next Set wnd = Nothing Set shl = Nothing End Sub Sub test111() 'タイトルを調べる Dim shl As Object Dim wnd As Object Set shl = CreateObject("Shell.Application") For Each wnd In shl.Windows() If InStr(LCase(wnd.FullName), "iexplore.exe") Then Debug.Print wnd.document.Title End If Next Set wnd = Nothing Set shl = Nothing End Sub また、グーグルで、"VBA 既に開いているIE" で検索すると、必要な情報が得られます。

emaxemax
質問者

お礼

ありがとうございます。 せっかく教えていただきましたがうまくいきません。 > Sub test()'URLを調べる で開いているサイトのURLは取得できました。 そのURLから x.PutInClipboard  ActiveSheet.PasteSpecial にどうやってもってくるのかがわかならいのです。 すみません。