• ベストアンサー

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

DOUGLAS_の回答

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

>「’」をつけないとA4のメッセージが出てしまい実行できません。 >つけると・・・ペーストエラー(A5)になってしまいます。 >つまりctrl+Vで貼り付けはできる)  ん~~。原因が分かりませんねぇ。。。  とりあえず、 >1chごとに新しいBookSheetに保存するので >chごとの呼び出しは常にA1になります。 ということですので、マクロの中で、操作の始めにA・B列の内容を クリア し、そこに貼り付けるようにしてみましょう。 --------------------------------------------------  noro6857 さんは Excel2010 をお使いのようですので、「.xls」の拡張子は、「.xlsx」に変更してお試しください。 1)データ ドライブ に適当な 試験用の フォルダ を作成し、「既存の関数入りのsheet」のある ブック を コピー します。  例えば、「D:\hoge\関数入り.xls」 2)「D:\hoge\関数入り.xls」に 標準モジュール を挿入し、下記の マクロ を コピペ します。 3)「既存の関数入りのsheet」を「Sheet1」とし、「Sheet2」のA列に、読み込みたい チャンネル の番号を羅列します。  例えば、「A1:401、A2:405、A3:411、A4:456」 4)マクロ を実行します。  その結果「D:\hoge\」フォルダ に 401Ch_(20110724) .xls 405Ch_(20110724) .xls 411Ch_(20110724) .xls 456Ch_(20110724) .xls という4つの ブック ができます。  マクロ の操作内容は、 1)Sheet2 の 空白セル を削除し、A列 の値を配列に格納。 2)Sheet1 にて、繰り返し作業開始。 3)1チャンネルずつ、データ を読み込み、ワークシート に転記。  存在しない チャンネル ページ を参照したときは、エラー メッセージ を表示。 4)「楽曲タイトル」と「個人的に楽しむ場合・・・」以下の2行、及び空白行を削除。 5)Sheet1 を「{チャンネル番号}Ch_{日付}.xls」という名前で、マクロブック と同じ フォルダ に保存。 以上です。 '------------------------------------------------- Sub 繰り返し用_改訂版()  Dim myList As Range  Dim objIE As Object  Dim myCh As Variant  Dim myTbl As String  Dim CB As New DataObject  Application.ScreenUpdating = False  Sheets("Sheet2").Select  Rows(1).Insert  Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete  Set myList = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))  Set objIE = CreateObject("InternetExplorer.Application")  With objIE   Sheets("Sheet1").Select   For myCh = 1 To myList.Count    Application.StatusBar = myList(myCh) & "チャンネルを読み込んでいます。"    .Navigate "http://www.stardigio.com/songlists/lists1/" & myList(myCh) & ".html"    Application.Wait (Now + TimeValue("0:00:05"))    If InStr(.Document.body.outerHTML, "このサイトの中には見つかりませんでした") > 0 Then     MsgBox myList(myCh) & "チャンネルのページは見つかりませんでした。"    Else     myTbl = objIE.Document.getElementsByName("SongLists")(0).outerHTML     Columns("A:B").Clear     With CB      .SetText myTbl      .PutInClipboard      .GetFromClipboard     End With     Range("A1").Select     ActiveSheet.Paste     Columns("A:A").Replace "楽曲タイトル", ""     On Error Resume Next     Columns("A:A").Find("個人的に楽しむ場合を除き").Resize(2).Clear     On Error GoTo 0     Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete     Range("A1").Select     Sheets("Sheet1").Copy     ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & myList(myCh) & "Ch_(" & Replace(Date, "/", "") & ") .xls"     ActiveWorkbook.Close    End If   Next   Application.StatusBar = ""   .Quit   Columns("A:B").Clear  End With  Set objIE = Nothing  Application.ScreenUpdating = True End Sub '-------------------------------------------------  上記の マクロ は、チャンネル ごとに新しい ブック に保存するようにしていますが、1つの ブック に、チャンネル ごとに、新しい シート を追加する、という意味でしたら、変数の宣言部に Dim newBook As Workbook を追加し、 '-------------------------------------------------     Sheets("Sheet1").Copy     ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & myList(myCh) & "Ch_(" & Replace(Date, "/", "") & ") .xls"     ActiveWorkbook.Close    End If   Next '------------------------------------------------- の部分を '-------------------------------------------------     If myCh = 1 Then      ThisWorkbook.Sheets("Sheet1").Copy      ActiveSheet.Name = myList(myCh) & "Ch"      ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Replace(Date, "/", "") & ".xls"      Set newBook = ActiveWorkbook     Else      ThisWorkbook.Sheets("Sheet1").Copy After:=newBook.Sheets(newBook.Sheets.Count)      ActiveSheet.Name = myList(myCh) & "Ch"      ThisWorkbook.Activate     End If    End If   Next   newBook.Activate   Sheets(1).Select   ActiveWorkbook.Save   ActiveWorkbook.Close '------------------------------------------------- に差し替えてお試しください。  この場合は、「D:\hoge\」フォルダ に 20110724 .xls という ブック ができて、その ブック には、 401Ch、405Ch、411Ch、456Ch という4つの シート ができます。

noro6857
質問者

お礼

きのう回答を書き込んだつもりでしたが、入力し忘れたようで失礼しました。 この方法だと一気にできてしまうのですね。 毎週同じチャンネルの選択なので、一度必要チャンネルを入力しておけばいちいち一つずつ入力手間がかからずこれなら重宝します。 ということで早速試してみました。 (Book単位での作成なので前段のマクロを使いました) 2010のマクロ有効ファイルはxlsxでなくxlsmでしたのでその拡張子で試しました。 ただ、出来上がりがどうも安定しなくて、ひとつも生成されずにペーストエラーになったり、10くらい指定するうちの5つくらいでとまったり、もちろん全部作られるときもありました。(STOPはいずれもペーストできないとのメッセージ) この因果関係はよくつかめません。 今朝再度トライしてみたらすべてのファィルが生成されました。理由はよくわかりません。 削除行はうまく処理されていました。特に途中の空白行も削除できたらと思っていましたのでこれも削除されていていい仕上がりになりました。 ただし、ひとつだけ問題が。 関数式の入っているブックに取り込んでいるのですが、その関数式が ひとつめのブックでは問題ないのですが、ふたつめ、みっつめと進むうちに下の方からだんだん式が削除されてしまい、10こめのBookでは1行目の式しか残っていませんでした。 あと生成されるシートはxlsで作られるため、出来上がりを開くときにその都度メッセージが「開こうとしているファイルが実際はその拡張子が示すファイル形式ではありません。コノファィルを開く前に、ファイルが破損していないこと、信頼できる発行元のファイルであることを確認してください」と出て、かまわずそのまま開けば取り込まれたファイルであることには変わりません。これはメッセージがわずらわしいだけで問題はありません。

関連する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