Avex = Asynchronous + VBA + Excel
・・・とか言ってみる。
最近ハヤリのAjaxですが,それと同じことをExcelのマクロで出来ないかというのがAvexです。
サンプルとしてGoogleサジェストと同じ動きをする「Excel Suggest」というものを作ってみました。
VBAを使ってMSXMLオブジェクトを生成し,XMLHTTPRequestを呼び出してます。検索ボックスみたいなセルにキーワードを打ち込むと,Google Suggestからそのキーワードの候補を持ってきて下のセルに表示させます。
フリーで使って貰ってOKですけど,完全自己責任ってことでよろしく。
VBAマクロもなかなか使えますね。ハマってきちゃいました。
さてこのマクロを作って知ったこと。
- Application.ScreenUpdatingをサブルーチンの先頭でFalse,最後尾でTrueとすることで画面のちらつきを防げる。実行効率もアップ。
- Application.onKeyでキー入力のイベントも取得できるみたい。このマクロでは使ってないけど。
- "http: //www.google.com/complete/search?hl=en&js=true&qu="の 後にキーワードを付け足すことでGoogleSuggestのキーワードリストを取得できる。日本語版のリストはどうやって取得するのか分かんない。
ExcelSuggestのソース — Gist
参考リンク
- アンドリューのエクセルTIPS
- Excelでいろいろ遊んでいる人のブログ。楽しげで良いです。
- Web ページをダウンロードする方法~ MSXML 編~
- VBスクリプトでXMLHTTPRequestを使う方法を紹介。
0 件のコメント:
コメントを投稿