これは、以前ここで教示していただいた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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
ピボットテーブルの日付フィル...
-
日付の大小の表現
-
履歴書の日付間違いで落ちますか。
-
フォームの値をクエリーに反映...
-
アクセスvba 複数のイベントを...
-
ACCESSで1月1日~12月31日まで...
-
スクリーンショットで撮影する...
-
本日の日付を知る方法は、何が...
-
エクセル マクロ 名前を付けて...
-
最新の日付に色を塗る
-
シートをブックからブックへコ...
-
エクセルで日付け表示で、明治...
-
日付の最大値を求めるには
-
[SQLSERVER2005]OSの日付を変更...
-
Excelで1週間毎の集計(今週と...
-
アクセス日付時刻の自動入力に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「24日の0時」って・・・
-
日付の大小の表現
-
「時間」、「期日」、「日付」...
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
履歴書の日付間違いで落ちますか。
-
エクセル マクロ 名前を付けて...
-
Excelについて
-
パソコンで購入したデーターが...
-
2つの日付の中間の日付 エク...
-
Excelでヘッダに前日の日付を表...
-
エクセルで日付け表示で、明治...
-
エクセルで日付別にシートを分...
-
Excelで1週間毎の集計(今週と...
-
エクセルで6ヵ月後を自動入力で...
-
マクロボタンを押すと、ファイ...
-
差込印刷 縦書きで和暦(漢数...
-
日付以外のデータを抽出したい...
-
EXCELで日付を****年上期、****...
-
Facebookで投稿日時を変更できない
おすすめ情報