エクセルVBAでJSON

VBAでJSONを使う機会があったので調べてみた。
ライブドアがJSON提供している天気情報をエクセルVBAで読み取って表示させるサンプルが成果物。

 

ここから取れます。

http://funako.sakura.ne.jp/json/jsonsample.7z

 

参考にしたサイトなど。

・JSONの取得には以下を参考にした。というかほぼパクリ。

Handle JSON Object in XMLHttp response in Excel VBA Code - Stack Overflow

Json.xlsm - Google Drive

・都道府県や地方の一覧はRSSで提供されているので以下の方法で取得

Excel VBAでWebサービス - 天気予報を取得してみよう (1) 手作業で行う部分の手順 | マイナビニュース

・取得した地方の情報は以下の方法で実装

エクセルで全国の都道府県を選択したい場合に、A1で地方(東北・関東・近畿)な... - Yahoo!知恵袋

エクセル(Excel)技道場−入力規則

http://www2.odn.ne.jp/excel/waza/list.ZIP

macにEclipseをインストールし日本語化する

1.EclipseのDL

http://www.eclipse.org/にアクセス
・DownloadをクリックしEclipseIndigoをDL
(OSがMacOSになっていることを確認)
(32ビットか64ビットかはご自分の環境にあわせて選択)
(DLするのはEclipse IDE for Java EE Developers)f:id:funakusi:20120524104955p:plain
・ダウンロードしたファイルをダブルクリックして解凍しておく
Safariの設定でDLと同時に解凍されている場合もある)

 

2.日本語化に必要なファイルのDL

http://mergedoc.sourceforge.jp/にアクセス
・Pleiades本体のダウンロードにある最新版をDL

f:id:funakusi:20120524105002p:plain

・ダウンロードしたファイルをダブルクリックして解凍しておく

 

3.ファイルの移動と設定

2.で解凍したフォルダの中身を1.のフォルダへコピーする
・pleiades/featuresのなかにある「jp.sourceforge.mergedoc.pleiades」をコピー
eclipse/featuresにペースト

 

・pleiades/pluginsのなかにある「jp.sourceforge.mergedoc.pleiades」をコピー
eclipse/pluginsにペースト

 

eclipse/eclipse.appを右クリックしパッケージの内容を表示

・Contents/MacOS/eclipse.iniの最終行に以下を追加して保存
(pleiades/readme/readme_pleiades.txtに書いている)

-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

eclipseフォルダを/Applicationへ移動
(別に移動しなくてもそのまま起動はできる)

 

4.確認

Eclipse.appをダブルクリック
・ワークスペースはそのままでOKをクリック
(別に変えても問題ない)
・メニューが日本語になってることを確認
(ようこそ画面は閉じておいてください)

 

5.Eclipseの設定

ここ(http://www.searchman.info/java_eclipse/1070.html)を参考にして設定を行なっていきます

・ワークスペースは4.で設定したとおりでOK
(上のリンクではWindowsでの作業ですのでスペースを考慮してますが、Macはあまり関係ないでしょう)

・デフォルトのJavaを選択
 macの場合、設定画面はEclipseメニューの環境設定になります
(たぶん変更する必要なし)

 

・エディタに行番号を表示
・ソースと実行ファイルのフォルダを分ける
コンパイラの設定
 JDKのバージョンを設定します。基本的には初期状態で設定されているバージョンでいいと思いますが
 確認したいのであればターミナルを起動して以下のコマンドを打てばわかります。

$javac -version

 

5.Eclipseの動作確認

Eclipse→新規(Command+N)→Javaプロジェクト
・プロジェクト名に「TEST」と入力し「完了」をクリック
・TESTを右クリック→新規→クラス
・名前に「Hello」と入力し「完了」
・以下のように入力し保存

 

public class Hello {

 public static void main(String args) {

  System.out.println("Hello World!¥n");

 }

}

 

実行して画面したのコンソールに「Hello World!」と表示されることを確認

ちなみに、上のソースを効率良く入力する方法が「WEB+DB PRESS Vol.43」の「Eclipse開発リズム」に掲載されている
簡単に説明すると以下のようになる。まずクラスを作成すると以下のようになっている。

public class Hello {

}

Helloの下の行に「main」と打ち込み「Shift+Space」
候補がひとつなのでそのままEnter

public class Hello {
 public static void main(String args) {

 }
}

mainの下の行で「sysout」と打ち込み「Shift+Space」

public class Hello {
 public static void main(String[] args) {
  System.out.println();
 }
}

カーソルが println()の ()内にあるので、その状態で「"(ダブルコーテーション)」を入力
すると、もうひとつのダブルコーテーションが自動的に入力されカーソルが「””」のなかに表示される
そのまま「Hello World!¥n」を入力しEnter。以上。

 

Eclipseは楽チンですね。

 

 

 

 

 

 

 

 

 

 

 

MacにGoogle日本語入力をインストール

1年ほど前にmacbook を購入したが、仕事の都合上ほとんどbootcampのwindows7しか使っていなかった。特に不都合はなかったが、ここ最近ネットを使っている時にやたらと「〜が解決されません」だとか「〜にアクセスできません」だとか表示されるようになった。実際にネットが切断されているわけではなく、その都度F5を押して更新すれば正常に戻るのだが、やはり使いづらいのでmacを使ってみることにした。

macで使いづらいのが日本語入力。どうにもなじめないのでGoogle日本語入力をインストールし、そちらをメインで使ってみるように変更。手順をざっと書いておきます。

  1. Google日本語入力のインストール
  2. システム環境設定→言語とテキスト→入力ソース→ことえりのチェックをはずす
    ついでにGoogle日本語入力の カタカナ、半角カナ、全角英数のチェックをはずす
  3. 入力メニュー(右上の「あ」とか「A」)から環境設定
    キー設定をMS-IMEに変更する(この辺はお好みで)

でつまづいたのが全角や半角カナへの変換。ネットで検索するとF7やF8で可能だと書いていたのにできない。いろいろ試すと、fnキー+F7としないといけないことがわかった。(→追記)さすがにそれでは面倒くさいので他はないのか調べたら以下のようになっているらしい。

全角カナ:Ctrl+7
半角カナ:Ctrl+8 
全角英数:Ctrl+9

とりあえず、この設定でしばらくやってみようかな。 

 

追記)2012.05.25
設定で変えられますね、知りませんでした。
システム環境設定→キーボード→「F1,F2などの・・」 

ソフトとハード

ソフトとハードについて書いておきます。

大学時代(パソコンについて全く知識を持っていなかった時代)、就職の面接を控えて後輩に質問したことがあります。

僕 :「ソフトとハードの違いって何?」
後輩:「えっ、ソフトとハードですか。うーん、そうですねー。。」
後輩:「ファミコンで例えるなら、
    ファミコンの本体がハードで、ファミスタとかのゲームがソフトですよ」
僕 :「おー、なるほど。わかった、わかった」 

このやり取りだけで、パソコンをわかった気になって面接に臨みました。
結果は言わずもがなです。そんな僕が、今パソコンの専門家になっているのも何かの縁なのでしょうか。

閑話休題 

パソコン用語でソフトとハードという言葉がでてきます。正確には、ソフトウェアとハードウェアですね。この言葉、わかる人にとってはあたりまえなのですが、以前の僕のようなパソコン初心者には結構な壁です。

上のファミコンの説明で納得できたかたもいるでしょうが、もうちょっと違う表現で説明してみます。
ソフトを映画とすると、ハードは映画館です。映画館があっても、その中で上映する映画がなければそれはただの建物です。同じように映画があってもそれを映像として映し出す場所(つまり映画館)がなければ、それはただのフィルムです。

パソコンのハードとソフトも同様の関係にあります。パソコンのハードとは電気屋さんで販売しているパソコン本体です。本体は大きくデスクトップ型とノート型に分かれるのですが、これはまた別途説明します。さて、パソコンは本体だけでは何もできません。こう書くと「何言ってんだ、ゲームとかインターネットとかできるでしょ」と言われそうですね。確かにパソコンを使えば、ゲームやインターネットだけでなく文書を作ったり印刷したり映画を見たりすることができます。しかし、それはすべてソフトが提供しているものなのです。画面に何かを表示させたり、キーボードを打つと文字が表示されたり、マウスを動かすと矢印のようなものが画面を右往左往したり・・それらすべてがソフトが提供しているものなのです。

なんとなく、わかってもらえましたか?
映画と映画館の関係と同じで、パソコンのハードとソフトもお互いを必要としているのです。