• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ホームページ上の複数のCSVファイルを、エクセルに自動取り込みする方法)

ホームページ上の複数のCSVファイルを、エクセルに自動取り込みする方法

このQ&Aのポイント
  • ホームページ上のCSVファイルをエクセルに自動取り込む方法について教えてください。
  • マクロを使用して、1回の起動で複数のダウンロードファイルを同じブック内の別々のシートに貼り付ける方法を教えてください。
  • サンプルのマクロでは、IBMの株価をダウンロードして終了しますが、DELLやAAPLの株価も同じブック内の別のシートにデータを貼り付ける方法を知りたいです。

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

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

例えばSheet1のA列に銘柄がある場合(A1=IBM,A2=DELL,A3=AAPL...など)、こんなのでは? Sub sample1() Dim ss As Worksheet Dim ds As Worksheet Dim url As String Dim sDate As String Dim eDate As String Dim Symbol As String Dim r As Long Set ss = Sheets("Sheet1") 'またはActiveSheetなど銘柄があるシート sDate = "1000/1/1" '開始日 eDate = "2010/12/31" '終了日 r = 1 Do While ss.Range("A" & r) <> "" Symbol = ss.Range("A" & r) '銘柄 url = "http://ichart.finance.yahoo.com/table.csv?g=d&ignore=.csv" url = url & "&s=" & Symbol url = url & "&a=" & Month(sDate) - 1 & "&b=" & Day(sDate) & "&c=" & Year(sDate) url = url & "&d=" & Month(eDate) - 1 & "&e=" & Day(eDate) & "&f=" & Year(eDate) '同名のシートの削除(手抜き版) Application.DisplayAlerts = False On Error Resume Next Sheets(Symbol).Delete On Error GoTo 0 Application.DisplayAlerts = True 'シートの追加とデータ読み込み Set ds = Worksheets.Add(after:=Worksheets(Worksheets.Count)) With ds .Name = Symbol With .QueryTables.Add(Connection:="TEXT;" & url, Destination:=.Range("A1")) .TextFileCommaDelimiter = True .Refresh End With End With r = r + 1 Loop End Sub p.s. 本当はいちいちSheet作ってquerytables.addしなくても.refreshだけでもいいかと思います。

77morimori
質問者

お礼

hotosysさん、毎回ありがとうございます。 マクロの動き、バッチリです! とても助かりますm(__)m

関連するQ&A

専門家に質問してみよう