• 締切済み

EXCEL VBA で URL内容を 取得できない

EXCEL VBAで URLの内容を取得しようとしていますが、URLの内容中に FINNAIRの広告ラベル? がトップにでてくる場合には URLの内容が取得できません。広告ラベルが 時々に変更されますが、FINNAIR以外の 広告ラベルの場合は URLの内容を取得できます。 FINNAIRの 広告ラベルも 取得できるようにするには、どうすればいいのでしょうか? FINNAIRの広告ラベルは、短時間のうちに 変化しているようです。なぜ、取得できないのか、まったくわかっていません。 解決方法を教えていただきたく、よろしくお願いします。 Sub IEデータ取得() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.navigate "http://www.japantimes.co.jp/news/" While (IE.readyState <> 4) Or IE.busy = True DoEvents Wend DoEvents IE.document.body.Focus IE.ExecWB 17, 0 IE.ExecWB 12, 0 Excel.Application.CutCopyMode = False Sheets.Add.name = "Formatテキスト" Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト" IE.Quit Set IE = Nothing End Sub

みんなの回答

回答No.1

うーん。 書き方が微妙すぎる! ちゃんと理解していないのでは? ↓のサイトで基本を身につけてからがんばってみましょー http://www.vba-ie.net/

sei1miyata
質問者

お礼

ご案内ありがとうございました。 ちゃんと理解できていませんし、案内された参考資料でも、単純には解決できそうにありません。 アプローチを変更してみたいと思います。

関連するQ&A

  • EXCEL VBAで URLの内容 が取得できない

    EXCEL VBA で VBAサンプルを参考にして、下記により、URLの内容を得ようとしていますが、できません。 どうも、URL画面の中に インプット用の記述があると、できなくなるのでは、と推測していますが、できるケースもあるようです。解決方法があるようでしたら、教えていただけますでしょうか? (Win7 64B EXCEL2010 IE11です。)' Sub URL取得TEST() On Error GoTo Er1 Dim StrUrl As String StrUrl = InputBox("URLを指定", "URL入力", "http://www3.nhk.or.jp/nhkworld/") ' これは 読み込めます StrUrl = InputBox("URLを指定", "URL入力", "http://uwl.weblio.jp/") ' これが読み込めません Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.FullScreen = False objIE.Top = 200 objIE.Left = 100 objIE.Width = 800 objIE.Height = 600 objIE.navigate StrUrl While (objIE.readyState <> 3 And objIE.readyState <> 4) Or objIE.busy = True DoEvents Wend DoEvents Workbooks.Add objIE.ExecWB 17, 0 objIE.ExecWB 12, 0 Sheets.Add ActiveSheet.name = "Format テキスト" Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト" objIE.ExecWB 17, 0 objIE.ExecWB 12, 0 Sheets.Add ActiveSheet.name = "FormatHTML" Range("A1").Select ActiveSheet.PasteSpecial Format:="HTML" '別のURLでテキストOKでこれはだめというケースあり ' objIE.Quit Set objIE = Nothing Exit Sub ' Er1: objIE.Quit Set objIE = Nothing End Sub

  • Excel VBAで検索結果を取得するにはどうしたらいいですか?

    今、Googleの検索結果をコピーして、Excelに貼り付けたいと思って います。 IEで検索するところまで書けたのですが、それ以上がわかりません。 Sub shutoku() With CreateObject("InternetExplorer.application") .Visible = True .navigate ("http://www.google.co.jp/") While .Busy Or .readyState <> 4 DoEvents Wend .document.all.q.Value = "指定のキーワードを入れる" .document.all.btnG.Click End With End Sub これから先、どう書いたらいいか教えてもらえないでしょうか? よろしくお願いします!

  • エクセルVBAの値貼り付けについて

    いつもお世話になっております。 エクセルVBAについての質問ですが 以下のコードを使用するとどうしても元の書式の貼り付けになってします。 値(テキスト)貼り付けを実行したいのですがどこのコードをどのように変えればいいか教えてください。 ------------------------------------------------------------------------------------------- Sub IE_Open_Copy() Dim objIE As Object Const OLECMDID_SELECTALL = 17 Const OLECMDID_COPY = 12 Const OLECMDEXECOPT_DODEFAULT = 0 Const URL As String = "https://okwave.jp/question/" Set objIE = CreateObject("InternetExplorer.Application") With objIE .Visible = True .Navigate URL Do While .Busy DoEvents Loop Do Until .ReadyState = 4 DoEvents Loop .ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT .ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT Application.Wait Now() + TimeValue("00:00:05") .Quit End With AppActivate Application.Caption, True Range("A1").Select Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "^v" Set objIE = Nothing End Sub ---------------------------------------------------------------------------------------------

  • サイトのページの全体をコピーしてエクセルに貼り付け

    サイトのページの全体をコピーしてエクセルに貼り付けたいのですが http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1341770528 を参考にしたのですが Sub test() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.goo.ne.jp/" While objIE.ReadyState <> 4 DoEvents Wend objIE.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT '17,0 objIE.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT '12 DoEvents Workbooks.Add DoEvents Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:=False End Sub をしたのですが、うまくコピーできていません。 一番最後にコピーした文字がセルに張りついてしまいます。 なぜでしょうか?

  • vbaでIEの操作

    こんばんは。やりたいことができないので教えてください。 vbaで指定のurlを開きたいです。 エクセル2003とIE8です。 Sub test001() Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True ObjIE.navigate "http://jp.msn.com/" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop End Sub これでIEを立ち上げてURLを開けるのですが これでは新しいウインドウで開いてしまいます。 現在IEを立ち上げていて、上記のコードを実行すると 新たなタブで開きたいですが解決策はありますか? ObjIE.Visible = True が原因かと思い、これを抜かしてみましたが そうすると何も起こりません。 VBAで既に開いているIEの新しいタブでURLを開く方法をご教授ください!よろしくお願いします。

  • EXCEL VBA IEからダウンロード

    まず以下のコードを見てください(一部を抜粋) objIE.Navigate URL02 Do While objIE.Busy = True DoEvents Loop objIE.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT objIE.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT Application.Wait Now() + TimeValue("00:00:05") objIE.Quit Worksheets("商品情報").Select Range("A2:J100").Clear Range("A2").Select Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "^v", True とりあえずこれで使えてはいるのですが、これだと一度IEを終了することになるので、終了せずにエクセルのシートにペーストしたいと思いobjIE.Quitを削除しました。 そうしたらコピーまではするのですがペーストしなくなってしまいました。 なんとかIEを起動したままでペーストしたいのですが、どう直したらいいですか?教えてください。 宜しくお願いします。

  • WEB画面をエクセルのセルに貼り付けるマクロ

    過去の回答を参考にエクセルでWEB画面をすべて選択しエクセルの所定のセルに貼り付けするマクロを作成しました。処理を追加していった結果、下記のようなマクロが完成しました。ステップインで動作確認できましたが、マクロ実行から動かすと途中で止まります。 止まる箇所は、 While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend DoEvents この記述でWEBが遅く開く時に対応するよう作成しましたが、ここで止まります。(抜け出せません) また、この記述を削るとステップインではうまく動きますが、マクロの実行から動かすと何回目かで objIE.ExecWB 17, 0 すべて選択するときに止まります。 どこが悪いのか教えていただけないでしょうか? 使用、作成したのは、excel2007 及びexcel2010です。どちらでも動きません。 よろしくお願い致します。 Sub test() Dim URL As String Dim URL2 As String Dim URL3 As String Dim CD As String Dim i As Integer For i = 1 To 199 CD = Worksheets("CD").Cells(i + 1, 1).Value URL2 = "貼り付けたいWEBのURL" URL3 = CD ’縦一列にコードを入力しているシート URL = URL2 & URL3 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.navigate URL While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend DoEvents objIE.ExecWB 17, 0 objIE.ExecWB 12, 0 Sheets.Add ActiveSheet.Name = 199 - i Range("A1").Select ActiveSheet.PasteSpecial Format:="HTML" objIE.Quit Set objIE = Nothing Next End Sub よろしくお願いいたします。

  • エクセル VBA で IE操作 

    エクセルVBAにて IEを操作し リンクをクリックするには どのような記述になりますでしょうか? たとえば http://okwave.jp/mypage へアクセスし画面右上 カテゴリ をクリック 次に Excel(エクセル) をクリック という具合に 画面に表示されている文字を順番にクリックしたいです。 マクロを見つけてきましたが クリックというのはどう記述していいやらさっぱりです。 Sub testIE() Dim objIE As InternetExplorer 'IEオブジェクトを準備 Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット objIE.Visible = True 'IEを表示 objIE.navigate "http://okwave.jp/mypage" 'IEでURLを開く Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop

  • エクセル内のURLからHPのタイトルを抽出したい

    エクセル内のA列にURLがあるのですが、B列にそのURLのHPのタイトルだけを抽出する方法はありますか? 色々調べて ------------------------------------------ Public Sub ReadTitle() Dim IE Dim url As Range Dim i As Integer Set url = Range("A2") Set IE = CreateObject("InternetExplorer.Application") i = 0 Do While (url.Offset(i, 0).Value <> "") IE.Navigate (url.Offset(i, 0).Value) While IE.busy: Wend While IE.Document.readyState <> "complete": Wend url.Offset(i, 1).Value = IE.Document.Title url.Offset(i, 3).Value = url.Offset(i, 2).Value '前回日付 url.Offset(i, 2).Value = IE.Document.LastModified i = i + 1 Loop End Sub このようなマクロで抽出は出来たのですが、URLは1万件以上あり、PCのスペックの低さのせいか、何時間もかかってしまいます。 もっと早く、タイトルだけを抽出する方法は無いでしょうか? よろしくお願いします。

  • vbaでIEを閉じるだけの処理

    オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。

専門家に質問してみよう