はじめに
- 今更Excel JavaScript APIを触ってみたく、Script Labで遊んでみた。
- どこでも*1動くので、あると便利な機能を実装してみる。
Script Labについて
Microsoftが出しているOfficeアドイン。 https://appsource.microsoft.com/ja/product/office/wa104380862
Office系APIがJavaScriptで操作できる。 用途としては、Officeアドインのプロトタイプ開発向けやAPI学習向けなどの記載がある。
企業によってはOfficeアドインの利用が制限されているが、自分の環境ではこのアドインはインポートできた。
個人的にうれしい点
- Windows, Mac, Webをサポートしているので、大体どこでも動く(脚注1参照)
- アドイン内で全て完結するので、ソース公開すれば、コピペですぐ動く
- JavaScript/TypeScriptで動く
- VBAではない(大事)
- 作業用ウィンドウで動作するので、サイドパネルとして実行できる
- 画面はHTML/CSSで作成できる
作ってみた
機能
- Excelブック内のシート一覧を表示し、選択したシートを表示する
- シートが更新されたときは更新ボタンで再描画する
ソースコード
解説というか、お作法
- APIの使い方はクセが強い。アクセスするオブジェクトのAPIリファレンスをよく読む必要がある。
- Excelのオブジェクトにアクセスするには、
context.sync()
をコールする必要がある。欲しい情報をload()
で設定し、context.sync()
をコールする。
参考にした公式サンプル
- 公式のコードサンプルがあるので、それを組み合わせて簡単にできた。
スニペットの公開(GitHubアカウント不要)
- GitHubアカウントがあれば簡単にGistに公開できるが、今回は利用しない。
- Shareメニューから
Copy to clipboard
でどこかにエクスポートする。
注意点
- Script Lab内のソースコードはブラウザキャッシュに保存されているので、そのうち消える。