グーグル・クローム(Google Chrome)からエクセルを検索するシステムを作りました。実は前にFirefoxでエクセル検索システムを作ったのですが、Firefoxクアンタム(Quantum)で使えなくなりました。ただ、クロームのアドオンさえ作ればまた使えるようになりそうだったので、作りました。
材料です。「Chromeアドオン」と「パイソン (Python)」と「ブイ・ビー・スクリプト(VBScript)」と「エクセル・ブイ・ビー・エー (ExcelVBA)」。この4つを組み合わせて作りました。
クロームはですね、どうやったらスクリプトを呼び出せるのかな~って凄く調べました。と言いますのも、一般のブラウザって実行ファイルを呼び出せないようになってるみたいなんですね。まあ、そうなんです。悪いサイトがPCの中のソフトを勝手に起動しちゃったら困りますもんね。
それで色々調べてたんですが、ウェブサイトを作ってURLのパラメータに証券コードを渡せば出来そうだなって気づきました。ウェブサイトといいますか、ウェブサーバーですね。ローカルに小さなウェブサーバーを起動して、そのURLに証券コードを渡すわけです。ウェブサーバーは普通のパイソンなので、VBScriptでもExcelでもなんでも実行できます。これでいきました。
つぎはクロームアドオンです。選択した文字列を検索用のURLにくっつけて開くアドオンです。これを作りました。例えば気になった企業の証券コードを選択してですね、右クリックすると「エクセル検索」みたいなメニューが出るわけです。
まあ、自分で作らなくても似たようなアドオンは結構あったんですが、証券コード以外にもいろいろなパラメータを渡したかったので、必要なものを作りました。具体的には「マニフェスト・ジェイソン (manifest.json)」っていう設定ファイルと、右クリックメニューを出したり選択文字列を操作したりするjavascriptファイルの2つを作って、クロームにインストールしました。
「Chrome拡張 開発方法」とか「Chrome JavaScript APIs」で見つかるページを参考にして、頑張って作りました。調べるところは限られてましたので、なんとか出来ました。どうやって選択した文字列を取得するのかとか、どうやって組み立てたURLを開くのかとか、そのあたりですね、調べたのは。やればできる!
パイソンのウェブサーバーは「コールバック・サーバー (CallbackServer)」モジュールを使いました。ローカルからの接続だけに反応するようにして、証券コードが来たらVBScriptに渡してエクセル検索してもらいます。VBScriptの起動は「subprocess.Popen」を使いました。
VBScriptとExcelVBAは、Firefox版のをそのまま使って完成しました。ちょっと不便なのが、パイソンで作ったサーバーを起動しておかないといけないところですね。それでも凄く便利です。
検索の手軽さって、大切なんですね。企業のメモとか業績グラフとか、色々まとめてはいるんですが、いざ見返そうってなった時です。開いたページの証券コードをコピーして、エクセルを起動して、列を選択して検索してって、なかなかする気が起きないです。ですので、
証券コードを選択して右クリック検索!
これです。手元のExcelメモとかデータベースとか、活用度がグッと上がりました。このエクセルサーチシステムですが、開発にかかった時間以上のリターンはありました。アドオンの作り方とか分からないことだらけでしたが、調べて作る過程も結構楽しかったです。