• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ VBA 簡単なことなのかもしれませんが?)

マクロVBAで時系列データをExcelにロードする方法は?

このQ&Aのポイント
  • マクロVBAを使用して、特定のURLから時系列データをExcelにロードする方法について質問です。
  • Excelのシートに入力済みの銘柄コードと期間を指定し、VBAを使用して指定したURLからデータをロードします。
  • 選択した終了日までのデータをロードするため、URL中の選択終了日を変更する処理が必要です。しかし、それを行ってもデータが正常にロードされません。原因を教えてください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

URLの部分を t?c=2007&a=6&b=20&f=2007&d=9&e=" & shuuryoubi & "&g=d&s=1321.o&y=0&z=1321.o" といった具合に編集します # 行が分割されていますが1行で書くか _ を使って分割してください 最後のほうで代入している shuuryoubi = 17 は QueryTables.Add より前で実行しましょう

t-tommy
質問者

お礼

アドバイスありがとうございました^^。 全ての入力が可能になり、とても助かりました。 ちなみに、下記様になりました (同様の件で探されている方参考になさってください)。 Sub test77() Range("a1:h300") = "" Dim kaisituki As Integer '選択開始月 Dim kaisibi As Integer '選択開始日 Dim shuuryoutuki As Integer '選択終了月 Dim shuuryoubi As Integer '選択終了日 Dim sijyou As Integer '選択市場 Dim sijyoukigou As String '選択市場記号 Range("b1").Select kaisituki = 7 kaisibi = 21 shuuryoutuki = 8 shuuryoubi = 20 sijyou = 6363 sijyoukigou = t With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://table.yahoo.co.jp/t?c=2007&a=" & kaisituki & "&b=" & kaisibi & "&f=2007&d=" & shuuryoutuki & "&e=" & shuuryoubi & "&g=d&s=" & sijyou & "." & sijyoukigou & "&y=0&z=" & sijyou & "." & sijyoukigou & "" _ , Destination:=Range("b1")) .Name = _ "t?c=2007&a=" & kaisituki & "&b=" & kaisibi & "&f=2007&d=" & shuuryoutuki & "&e=" & shuuryoubi & "&g=d&s=" & sijyou & "." & sijyoukigou & "&y=0&z=" & sijyou & "." & sijyoukigou & """" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "23" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私が間違ったかもしれませんが、#1のご回答を取り入れ、質問のコードをやってみましたが、シートにデータが出ませんでした。 別途 Sub test02() Range("a1:h300") = "" With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://table.yahoo.co.jp/t?c=2007&a=8&b=20&f=2007&d=9&e=17&g=d&s=7203.T&y=0&z=7203.T", _ Destination:=Range("a1")) .BackgroundQuery = True .TablesOnlyFromHTML = True .Refresh BackgroundQuery:=False .SaveData = True .AdjustColumnWidth = True End With End Sub でやると、シートにデータが取れました。 銘柄をトヨタ自動車に、また期間を変えました。 東証、大証のT,Oはどちらでも出ました。 質問のコードを#1で修正して、質問者さんの側で、データがシートに出れば、私の間違いです。本件無視してください。 もし質問者さんの側でやって、出ないなら、 (私は.QueryTables.Addの引数について詳しくないので)、質問者さんの側で、私の乗せた上記コードを参考に、引数を中心に原因を当たってください。

関連するQ&A