Untidy Bookshelves

アクセスカウンタ

zoom RSS *** 途方もない恩返し ***

<<   作成日時 : 2013/02/12 01:34   >>

ブログ気持玉 0 / トラックバック 0 / コメント 2

 半月ほど前に作成したマクロの話――。
 目的は、KMAの過去実況値をボタン一発で取り出すことで、下が設定画面(シート名は「main」)。
 地点・年・要素をそれぞれB・D・F列のコンボボックスで選択し、ボタンを押すと取り込める仕掛けです。

 コンボボックスのリンクセルはB3・D3・F3。
 例えば、「ソウル」「2011」「降水量」を選択した場合、それぞれのセルに入る値は「1」・「3」・「4」。
 てっきり「ソウル」「2011」「降水量」と思っていたのですが・・・。
 最近の(?!)Excelはコンボボックスで選んだ値そのものではなく、リスト中の順序の数が入るんですね。
 知りませんでした。。

画像


 選択可能な地点はとりあえず5地点で、セルB6〜B10に設定。
 隣のC6〜C10の番号はデータ参照先に関連する番号です。
 選択可能な年は1960年以降で、D6以下に記述。
 選択可能な要素はセルF6〜セル14に設定。
 隣のG6〜G14の番号はデータ参照先に関連する番号です。

 ちなみに、ソウルの2011年の降水量を求めたい場合、データ参照先は以下になります。

  http://www.kma.go.kr/weather/observation/past_table.jsp?stn=108&yy=2011&obs=21&x=18&y=11

 このうち、「stn」は国際地点番号の下3桁で、ソウルは108(国際地点番号は47108)。
 Excelの設定画面では、各地点の下3桁をC列に記述しています。
 「yy」は対象年で、この場合は2011。
 「obs」は観測要素で、降水量は「21」。
 Excelの設定画面では、各要素に対応した番号をF列に記述しています。
 その後ろの&x=18&y=11のx,yは要素によって変化しますが、省いてもブラウザ上の表示は変わりません。
 なので、マクロの中では特に気にせず、省略しました。

 マクロの記述は、まずはURLに含まれる変数の設定から――。

------------------------------------------
Sheets("main").Select

p = Cells(3, 2)      '選択した地点
y = 2014 - Cells(3, 4) '選択した年
e = Cells(3, 6)      '選択した要素

pn = Cells(5 + p, 3)
en = Format(Cells(5 + e, 7), "00")

------------------------------------------

 B3・D3・F3のセルに入るのがリストに入る順序の数、というのはマクロを組む時には非常に楽。
 昔なら、If Cells(5 + p, 2)=p then ・・・と条件文を入れていたところです。

 「data」はサイトのデータを直接貼り付けるシート。
 「result」は「data」に取り込んだデータの必要部分だけを表示させるシート。
 どちらもきれいに・・・。

------------------------------------------
Sheets("result").Select
Cells.Select
Selection.Clear

Sheets("data").Select
Cells.Select
Selection.Clear

------------------------------------------

 データを取り込む部分は「マクロの記録」を利用した後、地点番号・年・要素を変数表示に。

------------------------------------------
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.kma.go.kr/weather/observation/past_table.jsp?stn=" & pn & "&yy=" & y & "&obs=" & en _
, Destination:=Range("$A$1"))
      (略)
.Refresh BackgroundQuery:=False
End With

------------------------------------------

 どの要素を選んでも、観測データの開始行は変わらないようなので・・・。
 まったくの力わざですが、セルを直接指定のコピーから、シート「result」へのペーストにて終了。

------------------------------------------
Range("A157:M189").Select
Selection.Copy

Sheets("result").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

------------------------------------------

 ちなみに、ソウルの2011年の降水量をシート「data」取り込むと、結果は以下になります。
 予想以上に長すぎる・・・。

画像

 色をつけた部分が Range("A157:M189") で、これをシート「result」にペーストすると、以下になります。

画像

 日降水量100ミリ以上の3つのセルが赤く囲まれていますが、これは当然、手動。。
 こちらの記事で、ソウルは26日・27日の二日間で470ミリと書きましたが、100ミリ超はもう一日。
 26日から28日の三日間で600ミリ近い雨が降っていたんですね。
 この三日間が効いて、2011年7月の月降水量は1131ミリ! いったい、平年の何倍なのでしょうか?

 ・・・といったようなことを調べるための取り込みツールなのですが、まだそこまで手が回っていません。
 降雪量の顕著事例に手をつける前に、冬が終わってしまいそうです。。

 ところで、この記事のタイトルですが、内容とはまったく関係ありません。
 ハングルのページをGoogle Chromeで日本語に訳したら、こんなことになったので何となく・・・。

画像

 深い意味はありません・・・というより、浅い意味もありません。。

 意味のないついでに・・・。

 KMAを検索すると、トップは本来の目的であるKMA(韓国気象庁)ですが、ほかにもいろいろあります・・・。

神奈川オートバイ事業協同組合
      Kanagawa Motorcycle Association

国立音楽院
      Kunitachi Music Academy

(株)カツラダモータース
      Katsurada Motors Accesories

関西模型クラブ連合会

(株)ケイ・エム・エー
      Knowledge・Mind・Actionの頭文字を取った、らしい・・・。

(株)橋梁メンテナンス
      KYORYOU MAINTENANCE なのか・・・?

 ・・・で、問題の(株)KMA
 1ヵ月ほど前、隣人からその存在を知らされましたが、何の略なのか、さっぱり分かりません。
 サイトの「KMAとは?」「よくあるご質問」「お問い合わせ」を見ても、手がかりなし・・・。
 特に相談すべきことはないですが、ご存知の方、教えてください。。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
3年以上たっていますが…
…で、問題の(株)KMAのご回答です。
下記のサイト本文に記載があります。
http://mbp-saitama.com/kma-h/
よろしくお願いします。
株式会社KMAです。
2016/05/30 16:32
まさか、3年以上たってから……ありがとうございます。
「関東結婚情報サービス」の略なんですね。
謎が解けました! と言いたいところですが、
Kanto MArriage の略なのでしょうか?
略し方がちょっと謎ではあります。。
たかはし
2016/05/30 23:57

コメントする help

ニックネーム
本 文
*** 途方もない恩返し *** Untidy Bookshelves/BIGLOBEウェブリブログ
文字サイズ:       閉じる