Programming

EXCEL VBAとGoogleで為替レートを取得してみる(1)

Programming
スポンサーリンク

どうもー、Reveです。
最近、記事の方向性に一貫性がないなぁと思いつつ、今日もまた別のネタを書くつもりです(過去記事の続きを書けよ、という気もしますがw)。
今日はVBAで為替レートを取得する方法を取り上げます。
【為替レートの取得】
もともと仕事の関係で、為替レートを簡単に取得できる手法を探しており、いくつかVBAで取得する方法をまとめた記事もあります。
たとえばYahooファイナンスからレートを読み取ったり、APIで直接取得する方法もあったのですが、
記事の公開日が古いのも多く、Yahooファイナンスの仕様が変更されていたり、APIも有料、あるいは制限があったりとなかなか面倒な感じがしました。
しかし、Google先生が簡単な通貨コンバーター(https://www.google.com/finance/converter?a=1&from=USD&to=JPY)を公開しており、変換元と変換先の通貨を指定すればレートを簡単に取得することができます。APIではないのでHTMLソースを読み取って解析(スクレイピング)する必要がありますが、Excel VBAであれば実装も簡単です。
【実装の方針】
では、Excel VBAでどう実装するかについてですが、まずはVBAでWebをどう使うかに触れてみます。
今回はIE(Internet Explorer)を起動して検索するという方法を使います(ライブラリの参照が必要)。
なお、Excel VBAではIEしか制御できないので、IEが嫌いな人はこの手法を使ってはいけませんw(他のブラウザでもできるかも?)最近、Edgeとか発表したけど対応するのか
次に、この通貨コンバーターの仕様を見ましょう。
GoogleCurrencyConv.jpg
このサイトには「https://www.google.com/finance/converter?a=1&from=X&to=Y」というURLが与えられており、Xに変換元の通貨、Yに変換先の通貨(どちらも略称)を指定(ex. https://www.google.com/finance/converter?a=1&from=USD&to=JPY で1ドル何円かを表示)することで取得したい為替レートを計算してくれます。
続けてサイトの中身(ソース)を見ます。
ブラウザでソースの表示(IEかGoogle ChromeではF12。他のブラウザでは別の可能性もあります)をすると、
HTMLソース、いわばサイトの構造を見ることができます。
ここで、為替レートが表示されている部分について見ると、どうやらid名に「currency_converter_result」とつけられている部分に記録されていることがうかがえます。
GoogleCCHTML.jpg
そのため、この部分に書かれている内容文から為替レートを読み取れば、リアルタイムでレートの取得が実現できます。
IEの場合は、”1 USD = 122.6100 JPY “というように一連の通貨単位やレートが空白で区切られて表記されるので、その中からレートの部分だけを抜き出すことでレートを取得します。
(Chromeなど他のブラウザでは、表示が異なる場合があります)
これでプログラムを実装するための事前準備はできましたが、
プログラムの中身についてはこの後の記事で書きたいと思います(今度は本当に書きます汗)。
【参考】
こちらのサイトを参考にさせていただきました。
Qiita 為替レートのAPI: http://qiita.com/RKC/items/5bdec1fc0e526e30adb5

コメント

タイトルとURLをコピーしました