読書メーターを解析するマクロを作った

  • マクロを作った

Excelマクロで、読書メータの全記録をWebから拾って、集計するマクロを作りました。結果が下図です。

f:id:kent_s:20140425230023j:plainf:id:kent_s:20140425230027j:plain

  • マクロづくりのきっかけ

友達から「今のExcel VBA」はIEを自由自在に制御できて、ビッグデータを扱うのに持って来いなんだといわれたことがきっかけでExcelに興味を持ち始めました。

仕事で Excelは使うのですが、VBAは作るのに時間がかかるくせに大したことができないというイメージがありました。実際に業務のほとんどは関数とフィルタで事足りてましたし。

インターネットと結び付けられるとは思いもよらなかったです。ちょうどその頃(今もですが)ウェブから競合他社の情報を集めて考えるという業務があったので、学ぶのに機は熟した、と思いました。

 

仕事で使うとは言っても、日々の業務が忙しく、ストレスの多いものだったので、仕事中はなかなか手が出ませんでした。

したがって、プライベートで勉強するしかないのですが、プライベートでやる場合は、何か目的がないとやる気が出ないもので、友達から教えてもらってから、実際に手を出したのは半年程度経ってからでした。

やっと見つけた題材が読書メーターでした。読書メーターにはおよそ4年分の自分の読書記録が残っており、これを全部グラフ化したらどうなるんだろう?っていう純粋な興味がありました。

 

  • マクロを勉強するにあたって(入門編)

マクロを勉強するにあたって利用したのはウェブのみです。

まず基本的な勉強にはドットインストールを使いました。

ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト

 

このサイトはとても説明が分かりやすく基礎を抑えるのにはおススメです。

VBAは簡単だといわれていますが、私もそう思います。CとかPerlとかをある程度やってれば、覚えるのにそれほど苦はないと思います。その代り覚えてから色々と不満が出てきますが(^^;)

http://kent-s.hatenablog.com/entry/2014/04/23/235124

http://kent-s.hatenablog.com/entry/2014/04/24/002523

 

  • マクロを勉強するにあたって(応用編)

次に、VBAインターネットエクスプローラーを使うために様々なサイトを巡回しました。

多くのサイトがありますが、そのほぼ全ては基本的なサンプルコードを乗せるのみに留まっており、それだけでマクロを組むのはかなり困難だと感じました。情報量が圧倒的に足りませんでした。

なので、マイクロソフトのリファレンスを見るしかないのですが、マイクロソフトのページは、どうリンクを辿れば、知りたい情報に辿り着けるのかが分かりません(^^;「これかな」と思って進んだ先は行き止まりだったりします。確実なのは、GoogleでObject名やMethod名を直接調べて進むやり方でかなり効率が悪かったです。

ということで、マイクロソフトのリファレンスをまとめ直せばそれなりに需要があるのでは、と今は思っていて、次はそのテーマで勉強してみようかなと思っています。

 

ホームページの作成では、スタイルシートをデザインのために、各タグに設定するというのが常識だと思っていました。しかし、HTMLの解析では、スタイルシートの情報をキーに使って情報収集を効率的に進めることが出来ることが興味深かったです。

 

本来的な使い方ではないのでしょうが、ビッグデータの解析家たちもこうやって情報を集めてるんじゃないかなーと感じました。

 

  • 仕事への応用

仕事でもボチボチ使い始めています。

そもそもはインターネット制御が目的だったのですが、プログラミングに慣れてきたので通常業務でも使い始めています。

 

データ処理はちょっと複雑な処理になると関数で対処するには難しくなってきますし、見た目もどんどんでかくなってきます。最終データを得るための数式が長すぎると後で見直す時にうんざりします。

一方、わざわざPerlで処理するのもExcelからデータをわざわざ移し替えなければなりません。他者からExcelで資料をもらう際には、その手間が面倒ですし、リビジョン管理が難しくなります。

 

そういったときにExcel VBAは大変重宝しました。

 

  • まとめ

Excel VBAは使い道が多く、結構面白かったです。文法のストレスはあるものの、自分の仕事人生の中で、長く使っていく言語になるのでは、と思いました。