これは、以前ここで教示していただいたWEBからデータを取り出すVBAの一部です。
日付を入力し、その都度呼び出すWEBページを指定するものです。
--------------
myDate = InputBox("オープンする日付を「月/日」のように入力してください。", _
"日付の入力", Format(Date, "m/d"))
myURL = "0062/0062" & Format(Split(myDate, "/")(0) * 1, "00") & _
Format(Split(myDate, "/")(1) * 1, "00")
Connection_URL = "http://***/" & myURL & ".html"
-----------------
これは日付の当てはめにより(1/10の場合)
http://***/0062/00620110.htmlとなるようです。
そこで今回新たに指定したいurlは
http://***/guid/?datest=2011-01-10&ch=109
というものです。この中の-01-10の部分を日付指定により可変としたいのですが
ハイフンがはさまるため上記のVBAを変える必要があるようです。
VBAは初心者のため、元記述を色々書き換えて見たのですがうまくゆきません。
なお、chの部分も変えるとしたらをあわせて、アドバイスをよろしくお願いします。
No.3
- 回答日時:
今回の直接のエラーの原因は、「.Refresh BackgroundQuery:=False」の部分のはずです。
私が、ちょっと洒落たことをしようとしたのが原因です。しかし、それでエラーが返らなくても、QueryTables のVBAでは、サイトに訪れた人の情報を与えないので、取れないことがあります。
それと、良く分かりませんが、文字コードが単純ではないようです。教えて!goo などは、構造はものすごく複雑ですが、文字コードは単純です。目的の所は、Webサイトの構造自体は単純ですから、取得自体は、何ら問題ありません。
それで、今までのコードは、前回もちょっと書いたと思いますが、ほとんど定数以外は参考にはしません。
今回は、UserForm にまとめると良いと思います。
>※arrMenu = Array…は不要なものです。
もし使うなら、本来、これは、UserForm上のComboBox などを利用すると良いと思います。そこに、CommandButtonでアクセスするようにして、もう一つのComboBox を設けて、日付の範囲を予め作ってしまってもよいのではないかと思います。
InputBox をあれこれいじってみましたが、マウスだけで入力も出来ません・InputBox は使いづらいです。
> .WebTables = "9"
私もここが分かりません。Webクエリを記録マクロで取っても、それが出てきませんでした。
一覧のリストが取れればそれで良いような気がします。
しばらくお待ちください。一応、変更は可能ですが、こちらで、一旦レイアウトは決めされていただきます。
お手数をおかけします。
コードについては色々な方法があると思うので、目的のデータが取れればいいので、従来のコードは無視していただいてけっこうです。
rrMenu の部分は私もcomboがいいかなと思って前回も提案しましたが、今回も109に相当する部分はそれを使いたいと思っています。
内容は123,108,109,110,201,202,204,205からの選択になり、123をデフォルトにしたいと思っています。
日にちは入力のほうがよさそうですが、comboのほうが適していればそれでもかまいません。
ただ、デフォルト表示はリアル日付(その日の日付)がやりやすいです。
元サイトは日付もコンボになっていますが、1-31までが長すぎるのと月末から翌月1日に移るのにいつもめんどうに感じています。
よろしくお願いいたします。
No.2
- 回答日時:
>一応urlの表示はうまくいっている用なのですが、「
http://**」は開けません。>インターネットに接続できません」とメッセージが出ちゃうんです。
たぶん、URLが、間違っているには違いないとは思います。
http://***/guid/?datest=2011-01-09&ch=109.html
例えば、貼りつけた後に、自動的に別のコードに変わっているとか、確認してください。
たぶん、どこかの放送の番組表のようですが、こちらでは、今のところ、調べようがありません。自己解決を望みますが、試せれば、こちらでチェックします。
お勧めしませんが、Google の短縮URLを使えば、後で消えてしまいますから、それを使ってもよいと思います。(たぶん、クレームがついた時には、もうURLは役に立たなくなっています。)
Google URL Shortener
http://goo.gl/
そこで生成されたを貼り付けてもよいです。2時間から、1日、1週間、ひと月、また恒久的なものがあります。
教えて!goo のURL http://goo.gl/qz5H7 (11/02/09 まで有効)
なお、#1のお礼欄で書かれたマクロに関しては、はっきりと明言できませんが、こういうスタイルにしたほうがよいです。
ActiveSheet.QueryTables(1).Delete
ActiveSheet.Range("A1").CurrentRegion.ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & Connection_URL, Destination:=Range("A1"))
.WebFormatting = xlWebFormattingNone
.WebTables = "9"
.Refresh BackgroundQuery:=False
End With
#6129006 昨年の8月のご質問をひと通りざっと読みましたが、ずいぶん長く続いたようで、今回の流れの一部は、そこからのようです。そのスレのNo.29は同意しますが、私は、あまり質問者さんのレベルには斟酌を加えずに、フリーで許される範囲でコードを書きます。しかし私は、せいぜい数回程度の返事で、最近は元気はありません。特に、こちらのカテゴリでは、トラブルが多発したせいで、あまり書きません。
もう一度最初から整理させていただきます。
下記は現在使用しているVBAです
※別のurlから取り込みたいために
それに適した記述に変更したいと考えています。
下記のurlはhttp://www.***/0062/00620109.html
です。
直したい別のurlは
http://www.***/?datest=2011-01-11&ch=109
のような記述になります。
-------------------
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://***/" & 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
End Sub
※arrMenu = Array…は不要なものです。
------------------------
ご指示いただいたVBAで発生した、エラーメッセージをじっくり見る限り
URLはしっかりと組成されていました。
WebTables = "9"というのは数字の持つ意味がよくわかりませんが
新URLだと変える必要があるかと思います。
gooのショートアドレスってなかなかいいですね。
早速2時間のアドレスを作りました
よろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社や役所などに提出する書類...
-
「24日の0時」って・・・
-
「時間」、「期日」、「日付」...
-
パソコンで購入したデーターが...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
回覧板の日付について質問です...
-
ACCESSで日付ごとに自動連番(...
-
ACCESSで1月1日~12月31日まで...
-
日付以外のデータを抽出したい...
-
エクセルで日付別にシートを分...
-
ストリートビューの過去ってど...
-
エクセル マクロ 名前を付けて...
-
Access VBA SQL文で教えてください
-
Access 2013 テキストボックス...
-
2つの日付の中間の日付 エク...
-
word文書で赤文字テキストを抽...
-
ACCESSVBAのseekで複数INDEX検...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンで購入したデーターが...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
日付の大小の表現
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
履歴書の日付間違いで落ちますか。
-
EXCELで日付を****年上期、****...
-
エクセルで6ヵ月後を自動入力で...
-
ACCESSで日付ごとに自動連番(...
-
WEEKDAYが反映されない
-
2つの日付の中間の日付 エク...
-
Excelでヘッダに前日の日付を表...
-
エクセルで日付け表示で、明治...
-
ACCESSで1月1日~12月31日まで...
-
アンドロイドスマホ。カメラに...
-
差込印刷 縦書きで和暦(漢数...
-
Excel関数 基準日に一番近い指...
おすすめ情報