
No.5ベストアンサー
- 回答日時:
>ほとんど意味分かりませんが...
いやいや、拝見しててだんだん理解されてるのが伺えましたよ。
デスクトップの指定については
Set ws = WScript.CreateObject("WScript.Shell") '特殊フォルダ名の取得
desktopDir = ws.SpecialFolders("Desktop") 'デスクトップの実体
の二行で、誰のパソコンで作動させても自動的にデスクトップを指定してくれるようになります。
スクリプト全体を載せておきます。
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
For i= 0 To 6 '現在時刻から6時間後まで
dYear = Fmt(Year(Now),4)
dMonth = Fmt(Month(Now),2)
dDay = Fmt(Day(Now),2)
dHour = Fmt(Hour(Now),2)
dMinute = "00"
dName = dYear & dMonth & dDay & dHour & dMinute & "-0" & i & ".png"
sSource = "http://www.jma.go.jp/jp/radame/imgs/prec/000/" & dName 'ダウンロード元
Set ws = WScript.CreateObject("WScript.Shell") '特殊フォルダ名の取得
desktopDir = ws.SpecialFolders("Desktop") 'デスクトップの実体
sDest = desktopDir & "\" & dName 'コピー先
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Next
Function Fmt(num, digit) '0を頭につけて桁数を合わせる(例:6→06)
Fmt = Right(String(digit, "0") & num, digit)
End Function
対価なんてとんでもありません。
後々自分が同じような問題に直面したときにここでの質問&回答が役に立ちますし。
属性書いてますが、私は経験者ではありませんので。
気象当番がんばってください。
本当にありがとうございました。
こういったことが、さらりとできるなんてすごいです。
私のパソコン作業なんて、非効率的なことばかりなんでしょうね...。
プログラムのこと、簡単な入門書でも買ってみようかな、なんて、
無謀なことを、ちらっと思ったりしてしまいました。
ありがとうございました。m(_ _)m
No.4
- 回答日時:
No.3を書き込んだ後でNo.2への回答へのお礼を見ました。
今後のためにも予報図のためのスクリプト例も載せておきます。
何時の予報をとってくるかはスクリプト内で指定するようにしました。
下のスクリプトは2006年7月7日13時00分の6時間予報を取得するものです。
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
For i=0 To 6 '現在時から6時間後まで
dYear = "2006"
dMonth = "07"
dDay = "07"
dHour = "13"
dMinute = "00"
dName = dYear & dMonth & dDay & dHour & dMinute & "-0" & i & ".png"
sSource = "http://www.jma.go.jp/jp/radame/imgs/prec/000/" & dName 'ダウンロード元
sDest = dName 'コピー先
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Next
この回答への補足
ほんとに、ありがとうございます。
これを使うのは、早朝、気象当番の時、いろいろな情報を集めなければいけなくて、
こういうのがあると精神的に本当に楽になります。
重ねて、お礼申し上げます。
ただ、「test.vbs」をクリックすれば、
いつも最新の時間から6時間後までが入手できるようにしておきたく、
以下のようにコピペで変えましたがうまくいきません。
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
For i= 0 To 6 '現在時刻から6現在後まで
dYear = Fmt(Year(DateAdd("h",i,Now)),4)
dMonth = Fmt(Month(DateAdd("h",i,Now)),2)
dDay = Fmt(Day(DateAdd("h",i,Now)),2)
dHour = Fmt(Hour(DateAdd("h",i,Now)),2)
dMinute = "00"
dName = dYear & dMonth & dDay & dHour & dMinute & "-0" & i & ".png"
sSource = "http://www.jma.go.jp/jp/radame/imgs/prec/000/" & dName 'ダウンロード元
sDest = dName 'コピー先
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Next
Function Fmt(num, digit) '0を頭につけて桁数を合わせる(例:6→06)
Fmt = Right(String(digit, "0") & num, digit)
End Function
dHour = Fmt(Hour(DateAdd("h",i,Now)),2)
のところが1づつ増えてしまいます。
iに問題がありそうですが、いじってみてもできません。
今一度、ご教授頂けないでしょうか。。
なんとか、できてしまいました。
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
For i= 0 To 6 '現在時刻から6現在後まで
dYear = Fmt(Year(Now),4)
dMonth = Fmt(Month(Now),2)
dDay = Fmt(Day(Now),2)
dHour = Fmt(Hour(Now),2)
dMinute = "00"
dName = dYear & dMonth & dDay & dHour & dMinute & "-0" & i & ".png"
sSource = "http://www.jma.go.jp/jp/radame/imgs/prec/000/" & dName 'ダウンロード元
sDest = dName 'コピー先
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Next
Function Fmt(num, digit) '0を頭につけて桁数を合わせる(例:6→06)
Fmt = Right(String(digit, "0") & num, digit)
End Function
ですよね。
ほとんど意味分かりませんが...
ありがとうございました。 m(_ _)m
最後にファイルの保存先ですが
この「test.vbs」をどこに置いておいても
ダウンロードしたファイルがデスクトップに保存させるには、
どういった文を追加すればよいのでしょう。
対価もなく、ずうずうしくて、ほんと申し訳ありません。
ありがとうございました。
No.3
- 回答日時:
あー、予報のほうでしたか。
どっちかなぁと思いつつ予報でないほうで組んでしまいました。
予報天気図は
200607071300-00.png
200607071300-01.png
200607071300-02.png
200607071300-03.png
200607071300-04.png
200607071300-05.png
200607071300-06.png
(-00.pngは予報でないですが)となってますので、Forの繰り返しでdNameの"-00.png"で固定してるところを自由に動かせるようにしましょう。
dYearとかdMonthはdYear=2006とかにしてその都度変更する方がわかりやすいし便利かもしれません。
・・・と、がんばっていただいてもいいのですが、GetJpgという便利なフリーウェアを見つけてしまったのでご紹介しておきます。
http://www.vector.co.jp/soft/win95/net/se265138. …
使い方はReadmeをお読みになればおわかりになるかと思いますが、GetJpg.exeを起動して
URLの設定を
Baseにhttp://www.jma.go.jp/jp/radame/imgs/prec/000/200 …
1stに
00-
2ndに
.png
として、連番の設定を
1stは
Number
Start 12 End 14
Format 0#
2ndは
Start 0 End 6
Format 0#
としてやれば、12時から14時の6時間予報を全取得できます(合計3×7=21枚)。
設定の仕方によって様々な連番ファイルが取得可能です。
GetJpgを探し当てて思い出しましたが、以前このソフト使ったことありました。紹介遅れてすみません。
まぁスクリプトも何かと便利なんで覚えておくに越したことはありませんが。
参考URL:http://www.vector.co.jp/soft/win95/net/se265138. …
No.2
- 回答日時:
ちょうどよい巡回ソフトが見つからなかったので(よく探せばあるかもしれませんが)、参考URLのスクリプトを利用して、
http://www.jma.go.jp/jp/radame/index.html?areaCo …
の12時間前から現在時までの12枚の画像を一挙に取得するスクリプトを作ってみました。
(セキュリティ等については一切責任を負いません)
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
For i=-12 To 0 '12時間前から現在時まで
dYear = Fmt(Year(DateAdd("h",i,Now)),4)
dMonth = Fmt(Month(DateAdd("h",i,Now)),2)
dDay = Fmt(Day(DateAdd("h",i,Now)),2)
dHour = Fmt(Hour(DateAdd("h",i,Now)),2)
dMinute = "00"
dName = dYear & dMonth & dDay & dHour & dMinute & "-00.png"
sSource = "http://www.jma.go.jp/jp/radame/imgs/prec/000/" & dName 'ダウンロード元
sDest = dName 'コピー先
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
Next
Function Fmt(num, digit) '0を頭につけて桁数を合わせる(例:6→06)
Fmt = Right(String(digit, "0") & num, digit)
End Function
↑をメモ帳などにコピー&ペーストしてtest.vbsとでも名前をつけてデスクトップに保存して実行すれば画像取得ができるのが確認できると思います。
dMinute = "00"のところを
dMinute = "30"にすれば○時30分の天気図も取り込めます。
天気図の画像ファイル名が
200607070400-00.png
200607070300-00.png
200607070200-00.png
200607070100-00.png
200607070000-00.png
200607062300-00.png
200607062200-00.png
・・・
と連番になっているので指定ファイル名を規則的に変化させて保存処理させているだけです。
たぶんこのくらい可能な自動巡回ソフトは普通にあります。
できるかどうかということでしたので、例を挙げてみました。
参考URL:http://winscript.s41.xrea.com/wiki/index.php?%5B …
この回答への補足
おーっ、できました。
すごいですね。ありがとうございます。m(_ _)m
このリンク先の予報6時間分が欲しかったので、
数値を少しいじればいいのでしょうか?
やってみます。
ところで、自動巡回には「巡集」というのを使っています。
これでは、できなそうです。
こういうことができるソフトもあるかもしれませんね。
分からない...
エクセルVBAの手直し程度の知識しか持ち合わせいません。
現在時刻から、6時間後までの予報の画像が欲しいのですが、
どう修正すればいいのでしょうか?
ファイル名の後2文字を01から06にするようですが。
申し訳ありませんが、今一度ご教授頂けないでしょうか?
No.1
- 回答日時:
天気図などの画像ファイルのURLの名前が規則的ならば(気象庁の天気図とか)画像ファイルを自動巡回で直接ダウンロードしてしまえばよいので技術的には容易ですが、各サイトの利用規約に従うようにご注意ください。
気象庁のHPの利用上の注意には「当ホームページは、通常のブラウザで閲覧することを前提に各種情報を掲載しております。自動巡回ソフト等による、定期的、自動的な気象データの収集等は、サーバーに負荷がかかる等の理由から、原則としてご遠慮いただいております。ご理解お願いします。」と書いてあります。
参考URL:http://www.kishou.go.jp/info/coment.html#exclusion
この回答への補足
早速のお返事ありがとうございます。
利用規約には従っています。常時取り込むわけではありません。
ところで可能ということですが、
例えば
http://www.jma.go.jp/jp/radame/index.html?areaCo …
の中で、時間を変えた数枚を取り込みたいのですが
できるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 会社・職場 上司の心理とは 4 2023/06/27 16:01
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- 携帯型ゲーム機 ニンテンドースイッチについての質問です。 長文になるかもしれませんがすみません。 お昼頃にSwitc 3 2023/02/12 21:32
- デスクトップパソコン 突然PCの画面が真っ黒になりグラボ?かCPU?のファン?ブン回りの症状は?? 7 2023/05/26 12:56
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- 子供・未成年 お巡りさんにお説教されたかった少年 1 2022/09/28 15:15
- Excel(エクセル) Excelのリストにある文字を含むセルを、複数の色で色付けしたいです 2 2022/08/11 17:39
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- その他(悩み相談・人生相談) 不安による回避行動について 2 2022/11/11 19:07
- USBメモリー・SDカード・フラッシュメモリー メディアプレーヤーの字幕データ読み込みについて。 3 2023/08/16 13:14
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトって、何ですか?ど...
-
VBS を javascript に書き換える
-
Firefoxの拡張NoScriptの使い方...
-
イラレで特定の倍率に一発で変更
-
NetScapeで「お使いのブラウザ...
-
PDFファイルを分割するマクロの...
-
シャットダウン時にメッセージ...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
マイページはどこを開くの
-
一定時間おきにアラームやポッ...
-
PDFを(htmlのように)無限に縦...
-
「Cancel = True」とはどういう...
-
別フォームから戻ったときのイ...
-
小さな表示窓の呼び方は
-
Javascript_submit()完了後に処...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
VBA ポップアップが表示された...
-
[Java] Edgeでのアドレスバー非...
-
JTableの行ヘッダーを非表示に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトって、何ですか?ど...
-
PDFファイルを分割するマクロの...
-
【このスクリプトの実行を中止...
-
イラレにエクセルデータ挿入方...
-
Firefoxの拡張NoScriptの使い方...
-
gimp2.8 script-fu について
-
Googleスプレッドシートで特定...
-
NetScapeで「お使いのブラウザ...
-
質問なんですけど……
-
画面認識型の自動クリックソフ...
-
PhotoShopで色域指定による範囲...
-
Google CromeでGoogleカレンダ...
-
スクリプトって何?(パソコン初...
-
シャットダウン時にメッセージ...
-
IllustratorスクリプトでのEPS...
-
機能拡張
-
PDFで年齢を計算したいのです。
-
【Notes】CSVファイルを取り込...
-
このスクリプトの実行を中止し...
-
Greasemonkeyでスプリクトが反...
おすすめ情報