![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
Webクエリを使って、「Yahooファイナンス」から日経平均株価の時系列データを取得したいのですが、うまくいきません。(TT)
下記に全コードを記載しますので、ご回答よろしくお願いします。
Dim url As String
Dim lastrow As Integer
Dim i As Integer
Sub Calc()
'価格データを取得するマクロ
'このマクロ内で用いる各変数を宣言
Dim code As String
Dim day_s As Integer, month_s As Integer, year_s As Integer
Dim day_e As Integer, month_e As Integer, year_e As Integer
Dim row_length As Integer
'変数に各値を代入
code = "998407.o" '株価コード
day_e = 31 '取得終了日
month_e = 12 '取得終了月
year_e = 2005 '取得終了年
day_s = 1 '取得開始日
month_s = 1 '取得開始月
year_s = 2005 '取得開始年
'価格データを取得
For i = 0 To 365 * 0.65 Step 50
'変数にURLを代入
url = "URL;http://table.yahoo.co.jp/t?s=" & code & "&a=" & month_s & "&b=" & day_s & "&c=" & year_s & "&d=" & month_e & "&e=" & day_e & "&f=" & year_e & "&g=d&q=t&y=" & i & "&z=" & code & "&x=.csv"
'1回目の繰り返しの場合
If i = 0 Then
lastrow = "4"
Call Get_Data
'価格データが取得できなかった場合、マクロを終了させる
If Range("B4") = "" Then
Exit Sub
End If
'2回目以降の繰り返しの場合
Else
lastrow = Range("B4").End(xlDown).Row + 1
Call Get_Data
'見出しのセルを削除
Range("B" & lastrow, "H" & lastrow).Delete
row_length = Range("B4").End(xlDown).Row
'価格データが取得期間分存在していなかった場合、その時点で繰り返しを終了させる
If row_length - lastrow < 49 Then
Exit For
End If
End If
Next
End Sub
Sub Get_Data()
With ActiveSheet.QueryTables.Add(Connection:=url, Destination:=Cells(lastrow, 2))
.Name = "t?s=998407.o&g=d"
.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 = "22"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range("B5:F54").Select
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
Calcマクロを実行すると、
「実行時エラー"1004"ファイルにアクセスできませんでした。次のいずれかを行ってください。」 というエラーが出て止まってしまいます。
デバッグをすると、「Get_Dataマクロ」内の、
.Refresh BackgroundQuery:=False が黄色になります。
ステップインしても、やっぱり、
.Refresh BackgroundQuery:=False の所でエラーが出ます。(TT)
どうしても解決したい内容なので、
少しでも「解決の可能性」があれば、なんでも試してみたいと思っていますので、どうぞお気軽に回答お願いします。
力を貸しください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
試したところ、ちゃんと動作しましたのでコードの問題ではないでしょう。
で、検索したところ同じような質問があり、
インターネット一時ファイル、履歴を削除したら解決したようです。
下記URLを覗いてみてください。
http://okwave.jp/qa2884378.html
外しましたらご容赦願います。
onlyromさん、ご回答ありがとうございます。
ご紹介いただいたURLを参考に、
一時ファイル、履歴を削除したら正常に動作しました。(^^)/
本当に感謝です。ありがとうございました。
自分なりに調べた結果、
Internet Explorer 7をインストールすると、Webクエリの動作が不安定になり、インターネットからの株価取得マクロが正常に動かなくなることがあるようです。
ぼくは、vistaなので、IE6に戻すこともできず、
XPにするしかないのかなぁと、頭を抱えていました。(TT)
onlyromさんのおかげで、迅速に悩みを解決することができました。
本当にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて見た映画を教えてください!
初めて見た映画を覚えていますか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
エクセルマクロでエラーの原因がわかりません。
Visual Basic(VBA)
-
Excelを開くとエラーが出る
Excel(エクセル)
-
EXCEL2010で名前を付けて保存の時に「ファイルにアクセスできませんでした」エラーが出ます
PowerPoint(パワーポイント)
-
-
4
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
5
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
6
Excel ファイルに保存すると実行時エラーになる
Visual Basic(VBA)
-
7
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
8
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
9
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
10
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
11
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
12
別のシートから値を取得するとき
Visual Basic(VBA)
-
13
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
14
【Excel VBA】 WorksheetやRangeオブジェクトとして宣言した変数の開放は必要でしょうか?
その他(Microsoft Office)
-
15
VBA ソートすると、1、11、2,3になって・・
Excel(エクセル)
-
16
マクロの「SaveAs」でエラーが出るのを解消したいです
Visual Basic(VBA)
-
17
VBAで重複データを合算したい
Excel(エクセル)
-
18
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
19
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストボックスの複数選択時の...
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
.NETで現在時刻を常に動作させ...
-
Yahoo! JAPANのID取得について
-
エクセルVBA リストボック...
-
モニタの物理解像度を得る(Win3...
-
Excel VBA でログインしてい...
-
java.util.CalendarでのgetTime...
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
エクセルVBAで複数選択できるよ...
-
like演算子内に変数って使えな...
-
JAVA 入れ子MAPの取得時の書き...
-
VBA Shapesの座標からセル位置...
-
access 和暦をコンボボックスに...
-
VBScriptで数値にコンマを付け...
-
ListViewで複数選択された項目...
-
セルの結果でマクロ実行
-
特定のセルが空白だったら、そ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
count(*)で取得した値をJAVAの...
-
JavaScriptにおいてコンピュー...
-
like演算子内に変数って使えな...
-
VBA リストボックス内の値を複...
-
データ数をカウントしたいのですが
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
JavaScriptでWindowsログオンID...
-
ドロップダウンリストの初期表...
-
「Excel VBA」 Webクエリ マク...
-
NTPサーバから時刻を取得する
-
DataGridView 複数選択で行番...
-
ListViewで複数選択された項目...
-
現在時刻をミリ秒まで取得
おすすめ情報