プロジェクトができたのでいよいよ実行してみる。
$ npm run build
いろいろメッセージが出て、successfullyと表示された。 distというディレクトリができて、その中にビルドされたファイルがいっぱいできたようだ。 distフォルダは.gitignoreの設定に入っているのでリポジトリには影響なし。 アドインを実行するにはローカルWEBサーバーを立てる。 まずビルドを行う
コマンドは下記らしい
$ npm run start:web -- --document {url}
OneDrive上に新規のExcel Bookを作成する。 「共有」タブのところからリンクをコピーができるので、それをコピーしてurlのところに入れて実行してみる。 すると
? Allow localhost loopback for Microsoft Edge Web Browser? (Y/n)
ときかれた。 翻訳にかけてみると Microsoft Edge Web ブラウザーの localhost ループバックを許可しますか? なんのこっちゃ? とりあえずYにしてみる。 すると
Error: Unable to start debugging. なんか文字化け
となって終わってしまった。 よくわからんのでnで実行してみる。
今度はうまくいったっぽい。 Node.jsの制御許可みたいなのも出たのでOK。 webpackというコンソールが立ち上がり、同時にEdgeにエクセルのブックが開かれた。 Excel画面に「開発者モードを有効にする」というダイアログが出るので、チェックをつけて「OK」にする。 さらに「開発者アドインマニフェストを登録しています」というダイアログが出たので「はい」にする。
すると「Get started your smple addin」というメッセージが出て、リボンにShow Taskpaneというアイコンが表示された。 インストールがうまくいったようだ。 アイコンをクリックすると右側にWelcomeというパネルが出てきた。 カスタム関数が目的なので、あまり使わないと思うが、そのうちパネルもほしくなることがあるかも。
さて、目的の関数はサンプルのadd関数がある。 名前空間がCONTOSOとなっており、=CONTOSO.ADD(10,200)のように使えるらしい。 一瞬#BUSY!と表示されるが、ちゃんと足し算の結果が表示された!
とりあえず起動の実験は成功!
しかし、2数の足し算でちょっとタイムラグがあるって、実用上大丈夫なのだろうか・・・?
ためしに1000列くらい足し算してみたら、1つ計算するのに1秒くらいかかってるぞ・・・。
計算大掛かりにやるときってデスクトップありのExcelですら計算に時間かかったりするしなあ・・・。
これって計算をlocalhostでやってるわけだけど、これがサーバーになったらもっと時間かかるのだろうか? それとも、そもそも現時点でOneDriveのサーバーと自宅サーバーで通信をしているから、外部サーバーにおいても速度はあまり変わらない? これは今後要検証かな。 現実的に実用には難しいかもだけど、将来コンピューターやネットワークの性能が上がると信じて開発は続けてみよう。
ところで、これ終了はどうすればいいんだろう? そのままExcelもwebpackも×でよいのかしら?