日々の天気などは都度記録していればいいんですが、なかなかそうも行きません。
困ったときのインターネット。 Web上からデータを取得できたらとりあえず穴は埋まる。
というわけで。
データの取得先 元になるデータを公開しているページ データの取得方法 Excelでデータを取り込む方法 マクロの記録 基本となるコードを手に入れましょう Webアドレスの解析 これって呪文!? 生データの編集 必要のない部分はばっさりと? 地区データの選択 フォームを作ります サンプルファイルのダウンロード 使用条件があります。 更新履歴
アメダス 気温抽出
気象庁の過去のデータ検索Web 過去の天気抽出
Yahoo WeatherEye Goo
メニューバーから、データ/外部データの取込/新しいWebクエリ と進みます。(下図)
Webを参照 を押すと、ブラウザが開くので、アドレス欄に
http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_a1.php?prec_no=15&prec_ch=%8B%F3%92m%8Ex%92%A1&block_no=0041&block_ch=%91%EA%90%EC&year=2009&month=3&day=10&elm=hourly&view=
(ながっ!)を貼り付けてページを表示させて下さい。(北海道-空知地方-滝川市-2009年3月10日 のデータページ)
ブラウザの方はそのままにして、EXCELに戻ると先ほどのアドレスが表示されていると思いますので、OKを押します。
新規ワークシートを選択して、OK。
他にはサイトのHTMLテキストを直接取り込んで、Tableタグで切り分けする方法もあると思います。
メニューバーから、ツール/マクロ/新しいマクロの記録 と進みます。(下図)
データの取得方法で行った操作を行い、マクロを記録すると、
Sub Macro1()
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_a1.php?prec_no=15&prec_ch=%8B%F3%92m%8Ex%92%A1&block_no=0041&block_ch=%91%EA%90%EC&year=2009&month=3&day=10&elm=hourly&view=" _
, Destination:=Range("A1"))
.Name = _
"hourly_a1.php?prec_no=15&prec_ch=%8B%F3%92m%8Ex%92%A1&block_no=0041&block_ch=%91%EA%90%EC&year=2009&month=3&day=10&elm=hourly&view="
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
Range("F3").Select
End Sub
かなり長文ですが(^o^; 赤字の部分は必要ありません。(あらら・・・)
これで基本となるコードが取得できました。
先ほどは簡単にするため
http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_a1.php?prec_no=15&prec_ch=%8B%F3%92m%8Ex%92%A1&block_no=0041&block_ch=%91%EA%90%EC&year=2009&month=3&day=10&elm=hourly&view=
をブラウザのアドレス欄にコピペしてもらいましたが、ちゃんと意味があります。(といっても決めようなんでみんな同じとは行きません)
解析してみます。
http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_a1.php?
このあたりまでは単なるWebアドレスです。
prec_no=15
これ(15)が空知支庁のコード。
青森県は31、東京都は44、佐賀県が85 等となってます。
全部の県を選択表示させて調べました。(ひまじん!)
prec_ch=%8B%F3%92m%8Ex%92%A1
たぶん「空知支庁」などと書いてあると思いますが、これは空欄でも大丈夫のようですので赤字部分は削除して無視。
block_no=0041
これ(0041)は滝川市。 やっぱり全部調べたよ。(ちょ〜ひまじん!)
block_ch=%91%EA%90%EC
これも空欄でも大丈夫のようですので赤字部分は削除
year=2009&month=3&day=10
これは日付ですね。
elm=hourly&view=
hourlyが1時間毎のデータを表示する ということ。ここは定型で十分。
ということで、
http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_a1.php?prec_no=15&prec_ch=&block_no=0041&block_ch=&year=2007&month=11&day=7&elm=hourly&view=
が生成できればいいのですね。
地区のコード表を作って当てはめていけば作れそうです。
日付は、判っているので、必要なのは温度データだけです。
なので、赤枠部分以外は、ばっさりと行削除・列削除、といきたいのですが、
「観測日時」「気温」と言った文字を頼りに位置決定してデータを抜き出した方が間違いなさそうです。
アメダスの気温観測地点は910ポイントあります。
これは選択するだけでも容易ではありませんが、幸いにも(というか気象庁だって馬鹿じゃないですから、当然)ツリー形式になってます。
まず、北海道、東北、関東・・・・ とブロック分けします。(これは気象庁ではやってなかった!)
その下に、北海道だけ石狩支庁・空知支庁・後志支庁・・・
そのほかは、各都府県名。
さらにその下に主要都市名(観測地点名)がある。
で、フォームを作りました。
こういうものを作らないとなかなか便利にとは行きませんね。
これは実は同じフォームで、下にWebサイトの選択欄をつけただけ(見れば判るか)
気温データ用 天気データ用
上から順に地区を設定してゆき、日付の設定をします。(Webサイト選択は先にやって下さい。)
「←」はカレンダーフォームの呼び出しボタン。
※注意
このファイルの利用に当たっていかなる損害がありましても作者は一切の補償を致しません。
各自の責任においてご利用下さい。
また、改善案、バグ報告については随時受け付けておりますので、メールアドレス「MC_Applications●Yahoo.co.jp」まで、お知らせ下さい。( ●は@に打ち換えて下さい)
マクロコードは公開しています。 参考にして下さい。
マクロウィルスの混入を防ぐため、不特定多数とのファイル交換はご遠慮下さい。
原本はこのサイトから取得して下さい。
以上ご了承いただける方のみ、
ダウンロード(0.00)
ダウンロード(0.10)
ダウンロード(0.11) ダウンロード(0.12)してよろしい。
VerNo 更新日 更新内容 0.00 2009/4/26 リリース 0.10 2014/7/12 AMeDAS 福島県の地域コード(U307セル)修正(39⇒36)
AMeDAS オプション搭載 時間間隔、収集データ
24:00が翌日の0:00になるので表示だけでも保持する設定を追加
(日付形式ではなく文字列形式になるので、データの再利用には注意が必要)
0.11 2015/05/18 いつの間にかGooの地域コード 増えたりはいいんだけど、変わったり。
同じ番号に別の地域当てんなよ〜〜 で修正しました。0.12 2016/04/07 Goo模様替え。またお前か〜〜