• ベストアンサー
※ 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 にどうやってもってくるのかがわかならいのです。 すみません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAでIE操作をするサンプル

    VBAでIE操作をするサンプルをネットでいくつか見ているのですが Sub Sample1() Dim objShell As Object Dim objIE As New InternetExplorer Set objShell = CreateObject("Shell.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing Set objShell = Nothing End Sub Sub Sample2() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub ではどちらを使った方がいいのでしょうか? 圧倒的にSample2の方がネットでは多いのですが Sample1のやり方もあることを知りました。 Sample1の方法でブラウザを開くメリットはあるのでしょうか?

  • 複数のタブを開きたい IE

    IE9を使っています。 画像のようにタブを二つ開くにはどうすればいいでしょうか? Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub だと一つのタブしか開けません。 Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub にしても Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" objIE.Navigate2 "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub にしても1つのタブしか開けないです。 ご回答よろしくお願いします。

  • IEではなくファイアフォックスを指定することは

    VBAでブラウザを開く場合、 IEではなくファイアフォックスを指定することは可能ですか? 既定のブラウザはIEにしています。 Sub test1() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.ocn.ne.jp/" objIE.Visible = True Set objIE = Nothing End Sub の Set objIE = CreateObject("InternetExplorer.Application") の部分を Set objIE = CreateObject("firefox.exe") に変えてみたら、 【ActiveX コンポーネントはオブジェクトを作成できません。(Error 429)】 になりました。

  • ie 64bit 32bit どちらが開いてる?

    Sub Sample() Dim objIE As InternetExplorer Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True ObjIE.Navigate "http://www.yahoo.co.jp/" Set ObjIE = Nothing End Sub で、vbaからieを開いた場合、64bit 32bitのどちらで開かれるのでしょうか? 私の環境はwin7、IE9です。

  • IEのブラウザを、任意のサイズで指定するには?

    アクセスです。 Private Sub サンプル() Dim IE As Object Set IE = CreateObject("internetExplorer.application") IE.Visible = True IE.navigate ("D:\サンプル.txt") Set IE = Nothing End Sub で、IEは開くのですが、ブラウザのサイズがバラバラです。 縦10cm、横10cmのようにサイズの指定はできますか? (単位はcmでなくても大丈夫です^^) http://okwave.jp/qa/q5503310.html を見ると、APIを使うのかなー と思ったのですが、APIの作り方はわからないのでご教授お願いします。

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub IE_Test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.Navigate "(表示したいページ)" 'ページの表示待ち   While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer '調べる項目に対して、、、 For yCNT = 3 To 102 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける ここがわからない。。。 (画像になっているハイパーリンクをクリックしたい、、、) 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '念のため、新しいウインドウの表示を待つ While newIE.readyState <> READYSTATE_COMPLETE Or newIE.Busy = True DoEvents Wend 'ページが表示されたので、表示された文章に対して、処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click '表示されたウインドウ(newIE)からデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIE(子IE)を閉じる newIE.Quit Set newIE = Nothing '前のIE(親IE)を閉じる   objIE.Quit set objIE = Nothing Next yCNT End Sub 上記が現在までのできているコードです。 ここにも色々間違いがある可能性もあります。 ご指摘頂けましたら幸いです。 よろしくお願いします。

  • Internet Explorerの起動状態をチェック

    IEが起動中の時はそれを使い、未起動の場合は新規に作成する、、、というのがしたくて次のようなコードをつくってみました。 ところが、 Set myIE = myShellwindows のところでエラーになります。 これを防ぐにはどのようにするといいのでしょうか? Sub Set_IE() Dim myIE As Object Dim myShellwindows As Object Dim myObject As Object Dim Flag As Boolean Set myShellwindows = CreatmyObject("Shell.Application").Windows() Flag = False For Each myObject In myShellwindows If TypeName(myObject) = "IWebBrowser2" Then Flag = True Exit For End If Next If Flag = True Then Set myIE = myShellwindows Else Set myIE = CreatmyObject("InternetExplorer.application") myIE.Visible = True End If Set myShellwindows = Nothing Set myIE = Nothing End Sub

  • 現在開いてるIEのタイトルを取得するには?

    Sub test() 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 shl = Nothing End Sub ----------------------------------------- これを実行するとIEのURLは取得できますが 画像のようにタイトル部分の文字列を取得したいです。 LocationURLをLocationnameに変えたらエラーになりました。 ご教授よろしくお願いします。

  • VBscriptからIE11起動

    windows7(x64) IE11 IEを起動するスクリプトを.vbs作成しました。 vbsファイルをダブルクリックすると、↓エラーが発生するときがあります。 「 WScript.CreateObject: "InternetExplorer.Application" というオブジェクトを作成 できませんでした。」 ↓SRCです。 Dim IE Set IE = WScript.CreateObject("InternetExplorer.Application", "Event_") IE.Visible = True IE.Navigate ("http://www.yahoo.co.jp") set IE = nothing 数秒待ったり、vbsを連打すると起動します。 プロパティ(vbs右クリック)のスクリプトタブで実行時間を10秒にしてみても起動できないことがあります。 オブジェクトを作成しない方法はありますか? また、失敗している原因はなんでしょう?

  • 現在開いている全てのIEのURLのタイトルを取得し

    現在開いている全てのIEのURLのタイトルを取得したいのですが Sub test() Dim shl As Object Dim wnd As Object Dim doc As Object Dim frg As Boolean Set shl = CreateObject("Shell.Application") For Each wnd In shl.Windows() If TypeName(wnd.Document) = "HTMLDocument" Then Set doc = wnd.Document Debug.Print doc.Title Set doc = Nothing End If Next Set shl = Nothing End Sub このコードが If TypeName(wnd.Document) = "HTMLDocument" Then でエラーになる時とならない時があります。 エラーになる時は、 実行時エラー -2147467259 ’Document’メソッドは失敗しました:'IWebBrowser2'オブジェクト となります。 エラーが発生する時としない時の違いが分かりません。 そもそもどういう意味のエラーでしょうか? IE11、オフィス2010です。

このQ&Aのポイント
  • Panasonicのブルーレイレコーダーと東芝のテレビを利用して一台のテレビに二台のブルーレイレコーダーを接続したい場合、直列接続する方法があります。
  • 75Ωの同軸ケーブルを利用し、分配器を使用してレコーダーの入力側に接続し、出力側を分配器で逆に一つにしてテレビの入力側に接続します。
  • Panasonicのサポートセンターに相談したところ、直列接続が可能であるとのアドバイスを受けました。同じ方法を利用している方からの回答をお待ちしております。
回答を見る

専門家に質問してみよう