• ベストアンサー

エクセルのWEBクリエで取り込めないデータ

WEBデータをVBAで取り込みたいと思っていますが、 次のサイトをWEBクリエで取り込もうとしてもデータ内容が取り込ません。 WEBによって取り込めない場合もあるのでしょうか。 また取り込む方法は他にありますか。 ※取り込みたいデータ http://www.stardigio.com/songlists/lists1/401.html

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.26

>「図が大きすぎます。入らない部分は切り捨てられます。」 >VBAA25実行時(A23でも)なぜかときどき張り付けられない  同じ理由から来る エラー ではないかと存じますので、とりあえず、下記でお試しになった結果をお知らせください。 ActiveSheet.Paste の前に While Application.ClipboardFormats(1): DoEvents: Wend を Application.CutCopyMode = False の前に Range("A1").Copy を挿入してみてください。 -------------------------------------------------- >※ちあきなおみの「注」のL列消去は今までやっていた方法なので >今回の改善でゼロ表示するようになり楽になりました。  了解しました。 -------------------------------------------------- >前に、読込み後下記VBAを実行している旨記述しましたが >ANo25VBAの最後にこれをを勝手に加えてしまって同時処理 >しているのですが、かまわないでしょうか。(ダブりますか?)  ん? これにつきましては、「ANo.24」に書きましたように、 >なお、お示しの2行の マクロ を実行されるときは、・・・ から >「Sub for_spacediva2」から、以上の2点を訂正した・・・ までの操作をなさってください。

noro6857
質問者

お礼

Range("A1").Copy を挿入してみてください。 一応出なくなりました。 「一応」というのは、修正後最初1回出たのですが、その後は出ていないので、しばらく様子を見てみます。ありがとうございました。

noro6857
質問者

補足

今回もご丁寧にたくさんのアドバイスをいただきありがとうございました。おかげさまでこれからも毎日活用できそうです。 また機会がありましたらよろしくお願いいたします。

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

その他の回答 (25)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.5

>「実行時エラー5 >と出て、 >myTbl = Left(myTbl, InStr(・・・ >がハイライトされていました。  大変失礼いたしました。  コード の中では、"</table>" としておりますが、 myTbl = objIE.Document.getElementsByName("SongLists") で得られる htmlコード の中では、その部分が大文字の "</TABLE>" になっておりますので、[InStr 関数] の引数を省略せずに [compare] (文字列を比較検索する時点で大文字・小文字を問うか問わないか)も指定しなければなりませんでした。 myTbl = Left(myTbl, InStr(myTbl, "</table>") - 1) & "</table></div></div>" の部分を myTbl = Left(myTbl, InStr(1, myTbl, "</table>", vbTextCompare) - 1) & "</table></div></div>" に差し替えてお試しください。

noro6857
質問者

お礼

VBA実行時にエラーしました。 「実行時エラー1004 Worksheetクラスのoasteメソッドが失敗しました。」 デバック ActiveSheet.Paste なお、取り込めるようになったらひとつだけ追加VBA記述をお願いしようかと思っていたのですが、ここでお願いしておきたい思います。 Excelにペーストしたあと、A列に「楽曲タイトル」(B列に「演奏者名」)という行が多い411chで8か所、最低でも1行出てきます。この行をVBAの中で削除できればと思っているのですが、可能でしたらあわせてご指導くださるようお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

>「ユーザー定義型が定義されていません」 >と出てしまいました。  これは、「このチェックができないせい」です。 >Microsoft Forms 2.0 Object Libraryseというのが > 「Microsoft Feeds 2.0 Object Library」しか見当たらない  え~っと、操作は下記でよかったかと存じます。 1)VBE で [挿入(I)] - [ユーザー フォーム(U)] を クリック し、ユーザーフォーム を追加します。 2)[プロジェクト エクスプローラ](左側の樹形図)の [VBAProject(Book名)] - [フォーム] - [UserForm1] を 右クリック - [Userform1 の解放(R)...] を クリック します。 3)「解除する前に UserForm1 をエクスポートしますか?」には [いいえ(Y)] を クリック します。 4)[ツール(T)] - [参照設定(R)...] を クリック します。 5)「Microsoft Forms 2.0 Object Library」に チェック が付いていることを確認します。

noro6857
質問者

お礼

ご指示のように行ない Microsoft Forms 2.0 Object Library のチェックまでたどりつきました。 そこでVBAを実行したら 数字を入力後に 「実行時エラー5 プロシージャの呼び出し、または引数が不正です。」 と出て、デパックを見たら myTbl = Left(myTbl, InStr(myTbl, "</table>") - 1) & "</table></div></div>" がハイライトされていました。

全文を見る
すると、全ての回答が全文表示されます。
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

#大変お待たせいたしました。 #あれこれとしておりまして、遅くなってしまいました。 >ついでに便乗してしまって申し訳ないですが  ぃぇぃぇ、最初からそのつもりですので、ご遠慮なく。。。 >読み込む範囲ですが >HP上の数行上の「黒地に白抜きの文字の部分」から含める  これにつきましては、 .Document.getElementsByTagName("table")(0).outerHTML の行を .Document.getElementsByName("SongLists")(0).outerHTML に差し替えるだけでOKです。 >「401」の部分が色々あるのですが テキストボックス等に >入力してその数字が反映されるようになると連続して >作業ができるのでありがたい  そう来られると思っておりましたので、次の段階を既に考えておりました。  前回答のままでは、毎回、「この Web ページがクリックボードへアクセスすることを許可しますか?」という問い合わせがありますので、 http://officetanaka.net/excel/vba/tips/tips20.htm を参考に、他の方法で クリップボード に アクセス することにいたします。  先ず、VBE(Visual Basic Editor)において [ツール(T)] - [参照設定(R)...] を クリック し [参照設定 - VBAProject] ダイアログ の [参照可能なライブラリ ファイル(A)] の中から「Microsoft Forms 2.0 Object Library」の前の チェックボックス を オン にし、[OK] を クリック します。 Sub 繰り返し用()  Dim objIE As Object  Dim myCh As Variant  Dim myTbl As String  Dim CB As New DataObject  Set objIE = CreateObject("InternetExplorer.Application")  With objIE   Do    myCh = Application.InputBox("チャンネル番号を入力してください。" _     & vbNewLine & vbNewLine & "終了するときは キャンセル してください。", _     "STAR digio", 401, 100, 100, , , 1)    If VarType(myCh) = vbBoolean Then Exit Do    If CInt(myCh) <> myCh Or myCh < 400 Or myCh > 499 Then     MsgBox "400~499 の整数を入力してください。"    Else     .Navigate "http://www.stardigio.com/songlists/lists1/" & myCh & ".html"     Application.Wait (Now + TimeValue("0:00:2"))     myTbl = objIE.Document.getElementsByName("SongLists")(0).outerHTML     myTbl = Left(myTbl, InStr(myTbl, "</table>") - 1) & "</table></div></div>"     With CB      .SetText myTbl      .PutInClipboard      .GetFromClipboard     End With     Cells(Rows.Count, 1).End(xlUp).Offset(2).Select     If Selection.Address = "$A$3" Then Range("A1").Select     ActiveSheet.Paste    End If   Loop   .Quit  End With  Set objIE = Nothing End Sub

noro6857
質問者

お礼

ありがとうございます。 まず、ツール参照のMicrosoft Forms 2.0 Object Libraryseというのが 「Microsoft Feeds 2.0 Object Library」しか見当たらないのですが… (Excel2011) それとこのチェックができないせいかどうかわかりませんが Sub 繰り返し用()以下を実行しますと、 コンパイルエラーとなり Dim CB As New DataObjectのラインで 「ユーザー定義型が定義されていません」 と出てしまいました。 よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 他のご質問を拝見すると htmlタグ の知識も多少おありのようですし、VBA の操作もお出来になるようですので、VBA の サンプルコード をお一つ。 Sub WEBクリエぢゃなくてqueryだよ()  Dim objIE As Object  Set objIE = CreateObject("InternetExplorer.Application")  With objIE   .Visible = True   .Navigate "http://www.stardigio.com/songlists/lists1/401.html"   'While .Busy Or .ReadyState <> 4: DoEvents: Wend   Application.Wait (Now + TimeValue("0:00:2"))   .Document.ParentWindow.ClipboardData.ClearData "text"   .Document.ParentWindow.ClipboardData.SetData "text", _    .Document.getElementsByTagName("table")(0).outerHTML   Range("A1").Select   ActiveSheet.Paste   Selection.Columns.AutoFit   .Quit  End With  Set objIE = Nothing End Sub

noro6857
質問者

お礼

VBAで作っていただきありがとうございます。 構文はよく理解できませんが、なんとなくクリップボードでの作業をVBA化したものでしょうか。うまく読み込めました。これならいけそうです。感謝です。 ついでに便乗してしまって申し訳ないですが、「401」の部分が色々あるのですが テキストボックス等に入力してその数字が反映されるようになると連続して作業ができるのでありがたいのですが。 あと読み込む範囲ですが基本的にはこれでもかまいませんが、HP上の数行上の「黒地に白抜きの文字の部分」から含めることは可能でしょうか あつかましいお願いをしてすみません。よろしくお願いします。 ※クエリでしたね。すみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

このページはJAVAで逐次生成されているため,ExcelのWEBクエリでは取り込みできません。 #WEBクエリで取り込みできるためには,ホームページのソースを表示させたときに,そこにデータが記入されている必要があります。 エクセルに取り込むのが目的ならもちろん見えているページを直接コピーして貼り付ければ出来る事ですが,そういうお話では無いと思いますので,下記にあるような「ホームページ巡回ソフト」を試してみてはいかがでしょう。 http://www.vector.co.jp/vpack/filearea/win/net/www/auto/

noro6857
質問者

お礼

回答をありがとうございました。 なるほど、JAVA生成のHPでは取り込めないのですね。 「ソース表示でデータが表示それている必要がある」とても参考になりました。 フリーソフトの紹介をいただいたので早速いくつか試してみましたが 残念ながら思うようになりませんでした。 今までどおりCOPY、ペーストでやるっきゃなさそうです。

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

関連するQ&A

  • Webクリエ うまく読み込みできません><

    Webクリエ うまくできません>< http://fx.himawari-group.co.jp/report/weeklycalendar.html のサイトのカレンダーを読み込みたいのですが・・・ エラーが出てしまいます! *画像参照お願い致します!

  • 新しいクリエ買ったのはいいんですが

    とうとうVZ90買いました。 いままで使っていたクリエからデータを移したいのですが、そのままできるんじゃないかなと思い、 強引にホットシンクさせたらやっぱりダメでした。 前のクリエの全部のデータをそのまま移せる方法って ないんでしょうか・・・? MSバックアップで移行もしてみましたが、このデバイスでバックアップされたものではないと蹴られてしまいました

  • ウェブサイトのデータの入手方法

    VisualBasic6.0でウェブサイトのデータをオブジェクトとして 取得する方法が判りません。 ExcelのWebクリエのようにHTMLのテーブルタグの内容が直接 オブジェクトとして取得できるようにしたいのですが、方法 が判りません。 今は、タグを一つ一つ外してから、読み込むようにしている のですが、サイトが変更されると一からやり直しなので、で きればもっと簡単な方法があればお願いします。

  • エクセルのデータを自動的にWebに入れるには?

    いつもお世話になっています。 エクセルのデータをホームページに入れる時、決まった動作の繰り返しをするので、これを自動化することは出来ないでしょうか?VBAだとエクセル内部でしか出来ないのではないでしょうか? こういう操作です。 エクセルの場面でセルをCtrl+Cでコピーして、リターンキーを押して(セルが次のセルへ飛ぶ)、Alt+TabでWeb画面へ移動して、Ctrl+VでWebにエクセルの数値を貼り付けて、Tabキーを数回(回数は一定)押して次の入力欄へ移動させて、Alt+Tabでエクセル画面へ戻って、またCtrl+Cでコピー。 この繰り返しでエクセルの数値をWeb画面に入力するのです。このような定型的な動作はコンピューターが得意とするはずですが、VBAでは実現できない(と思う・・。エクセルの外部にまで操作出来るのでしょうか?)。 何か方法があるはずですが、ご存知の方がいらっしゃればよろしくお願いしたします。

  • ボタン天国をインストールするとWEBからのデータ取り込みができない

    Excel用ボタン天国100をインストールしたところ、「データ」→「外部データの取り込み」→「新しいWEBクリエ」によるWEBデータの取り込みが出来なくなりました。

  • VBAを用いて、ウェブからデータを取り込みたい

    エクセルVBAでウェブからデータを取り込みたいと思い、いろいろ挑戦していますが、以下のやり方(1)と(2)は失敗中です。 取り込みたいのは、ウェブページ中に描かれてある「表」の部分のデータです。 アドバイスをお願いいたします。 ◆◆◆◆◆失敗(1)◆◆◆◆◆ ActiveSheet.QueryTables.Add(Connection:="url;http://***省略***.htm", Destination:=Range("A1")) の方法の場合、取得したデータをエクセルシートに張り付けた場合に生じる文字化けがなおらず挫折・・・ QueryTableは文字コードを指定して読み込めないので困難という結論に至りました。 ちなみに目的のウェブページはshift-JISでcharsetされてますが、取得したいデータ部分はSQLサーバーでUTF-8で記述されていると思われます。 →http://okwave.jp/qa/q7864296.html ◆◆◆◆◆失敗(2)◆◆◆◆◆ ユーザーフォーム機能から、WEBブラウザーコントロールを用いて目的のウェブページを表示する方法では、表示したウェブページの情報をエクセルシートに転記する方法が分からず挫折・・・ url_report = "http://****省略.htm" WebBrowser1.Navigate url_report 'ここから先、どうすればエクセルシートにデータ取得できる? 上記(1)や(2)以外で他のやり方も含め、経験者の方のアドバイスをお願いいたします。 ウェブページ中の表データをエクセルシートにVBAで自動取得したいのですが・・・何か良い方法がありますでしょうか? ((+_+))

  • クリエでMacでMP3は聴けますか?

    クリエ(Clie)のPEG-N700CがMP3に対応したと雑誌で読みました。 これまで、MacからクリエにはOpenMG形式のファイルを落とせなかったようですが、MP3になって、Macからもクリエに音楽データを落とせるようになるのでしょうか? Macユーザーなんですが、クリエでMP3を聴きたいのです。方法を教えてください。 まず、メモリースティックとメモリースティックリーダーはやっぱり必要なんですよね? また、ダウンロードが始まったというAudioPlayer Ver.2はMacでも使えるのでしょうか?

  • Excel VBA で Webからデータを取得する方法

    Excel VBAを使ってWebページからデータを 取得する方法を探しています。 最初に、そのWebページの認証ページにIDをパスワード をVBAから自動で送信したいのですが、方法が全く わかりません。 認証ページはJavascriptを利用したページです。 どちらかご存知の方がおられましたら、 ご教授ください。

  • またまたエクセルでWEBデータを取り込む

    下のVBAは以前にお世話になった方に教えていただいたWEBからのデータ取得するものです。 日付を入力することで、その日のデータを取り出すことができます。 ところがWEBのURLが変更になってしまいました。 当方、VBAは疎いため適当に部分修正で利用しようとしたもののなかなかうまくできません。 呼び出したデータも以前と若干形式がちがっているためそのへんも直したいところがあるのですが 取りあえずWEBの取り出し方記述を教えていただければありがたいです。 (70, 80, 32, 62, 101,…というのはたぶんジャンル区分なので今回は不要です。) よろしくお願いします。 WEBURL(旧) http://www.m******/****/0062/00620726.html WEBURL(新) http://m*****/*****/2012-04-17/ ●旧WEB取り出しVBA Sub Using_Web_query30A() Dim arrMenu As Variant Dim myDate As String Dim myURL As String Dim Connection_URL As String arrMenu = Array(70, 80, 32, 62, 101, 102, 90, 120, 40, 22, 31) myDate = InputBox("オープンする日付を「月/日」のように入力してください。", _ "日付の入力", Format(Date, "m/d")) myURL = "0062/0062" & Format(Split(myDate, "/")(0) * 1, "00") & _ Format(Split(myDate, "/")(1) * 1, "00") Connection_URL = "http://www.m*********/***/" & myURL & ".html" Columns(1).ClearContents With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & Connection_URL, Destination:=Range("A1")) .WebFormatting = xlWebFormattingNone .WebTables = "9" .Refresh BackgroundQuery:=False End With

  • エクセルのWEBクエリで取り込めないデータ(続)

    QNo6887062で教えていただいたWEBからデータを取り出すVBA(A15)で対象URLのレイアウトが変更になってしまいました。そこで引き続き活用したいため修正方法を教えていただければと思います。 URLの変更については一部対応できたのですが、取り出す範囲、除去する方法です。 具体的にはQ&Aの中で書きますので、上記VBAを修正できる方でお願いします。 Excel2010/WinXP

専門家に質問してみよう