準備が整ったので、いよいよプロジェクトを作成してみる。
カスタム関数クイック スタート - Office Add-ins | Microsoft Learn
作成のコマンドは簡単でこれだけ
$ yo office
入力したら謎のおっさんが現れる。
_-----_ ╭──────────────────────────╮ | | │ Welcome to the Office │ |--(o)--| │ Add-in generator, by │ `---------´ │ @OfficeDev! Let's create │ ( _´U`_ ) │ a project together! │ /___A___\ /╰──────────────────────────╯ | ~ | __'.___.'__ ´ ` |° ´ Y `
初めにプロジェクトタイプを選択するように言われる。 作りたいのはExcel Custum Functionsなのだが、2種類ある。 using a Shared Runtime と JacaScript-only Runtimeというのがある。
チュートリアルでは共有ランタイムのほうを選択しているが共有ランタイムって何ぞ? Office アドインのランタイム - Office Add-ins | Microsoft Learn さっぱりわからないが、機能間でデータを共有するときは共有ランタイムになるらしい。 今回は関数を作りたいだけなのでいらないような気もするのだが、 説明のところにOffice on the webで実行する場合は共有ランタイムを選べとある。 ということで、チュートリアルと同じusing a Share Runtimeを選ぶことにする。
次に言語の種類を選ぶ。 JavaScriptとTypeScriptから選ぶ。 どちらもほとんど使ったことないのでどっちでもいいのだが
しらべてみると、TypeScriptのほうが上位互換なようだ。 そして型定義がしっかりしているらしい。 今回は設計の数値計算を実施したいことを考えると、型定義はしっかりしているべきな気がするので TypeScriptを選択。
最後にアドイン名を入力すると、プロジェクトの作成が始まる。
1分くらいで作成完了。
リポジトリの中で実行したら、アドイン名のフォルダの中に展開されて階層が下になってしまったので、中身のファイルを1階層上へ移動。 できたファイルがこちら
https://github.com/st-func/st_func_addin/tree/6fb3932ed395d1be11ba954b8858b1ee9dae6554
いっぱいファイルがあっていまいちよくわからないがちょっとずつ見ていくかな。 node_modulesというフォルダがものすごく重いが、これはgitignoreされている。 ググってみると、ここには参照するパッケージ(ライブラリ?)のファイルが入るらしい。 どのパッケージを使うか自体はpackage.jsonに書いてあるので、npm installとすると自動で復元できるので、 git管理からは除くとのこと。なるほど。