ST_FUNC開発日記

建築構造設計Excelアドイン開発の記録

アドインのビルド、実行

プロジェクトができたのでいよいよ実行してみる。

$ 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も×でよいのかしら?