Excel Web アドイン
Excelの機能をExcel付属のVBAで作るのは厳しくなってきた(VBEditor使いたくない。)ので、C#で書く方法が無いかなと探していたら見つけた機能。
本当は、VSTOを使って作りたかったが、VSTOは、 .NET Framework 4.8.1までしか対応していないようで、諦めた。
.NET core や .NET5 では使えないし、対応する気も無いとMicrosoftのHPに書いてあったので、どんなに使い勝手がよさそうに見えても選択する事が出来なかったため。
Visual Studioを入れて作り始めてみたら、非常にできが良く、作りやすく、素晴らしかったが、更新されないなら、その素晴らしさは逆に惜しくなってしまって害悪にしかならないと思う。
コンコルド効果的な?まだ投資してないから助かったけど。
同一ページを調べて居たところ、Office Web アドイン
というのがあると書いてあったので、そちらを確認。
Visual Studioで開発できるみたいな事も書いてあったので、Visual Studio 2022 Professionalでプロジェクト作ろうとしてみたが、.NET Framework 4.8.1までしか選べないので、VSTOと同じだと思ってこれも諦めかけた。
が、Yoemanジェネレータというのを使うともっと沢山の機能が使えるらしい。
Yoemanジェネレータは、npm
で動くらしいので、早速以下を実行。
1 |
npm install -g yo generator-offie |
続いて以下を実行
1 2 |
yo office |
すると以下が選択肢で出てくる。
1 2 3 4 5 6 7 8 |
Office Add-in Task Pane project Office Add-in Task Pane project using React framework Office Add-in Task Pane project using Angular framework Excel Custom Functions using a Shared Runtime Excel Custom Functions using a JavaScrip-only Runtime Office Add-in Task Pane project supporting single sign-on Outlook Add-in with unified Microsoft 365 manifest (preview) Office Add-in project containing the manifest only |
Office Add-in Task Paneというのは、説明ページにある、Excelの右側に出るBrowserみたいなやつだと思ったので、Office Add-in Task Pane project using React framework
を選択。
続けて出てくる選択肢は、JavaScript, Default, Excel と選択。
1 2 3 4 5 6 7 |
Choose a script type JavaScript What do you want to name your add-in?(My Office Add-in) Which Office client application would you like to support?(Use arrow keys) Excel |
なにかライブラリのインストール的なのが始まったので、よくあるWebのインストールと同じだろうと流し見していたところ、
緑の字で
1 |
Congratulations! Your add-in has been created! Your next step: |
と出てきた。
「おめでとう!」というくらいで、ネクストステップとあるんだから終わったんだろうと、
cdして、npm startしてみたら動かない。
1 2 3 4 5 6 |
> npm start > office-addin-taskpane-react-js@0.0.1 start > office-addin-debugging start manifest.xml 'office-addin-debugging' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 |
と出た。
なんかおかしい。
これは、ちゃんとインストールできていない雰囲気。
インストールのログを遡ったところ、以下だった
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
No change to package.json was detected. No package manager install will be executed. npm WARN config cache-min This option has been deprecated in favor of `--prefer-offline`. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: office-addin-taskpane-react-js@0.0.1 npm ERR! Found: webpack@undefined npm ERR! node_modules/webpack npm ERR! dev webpack@"^5.76.3" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer webpack@">=2" from babel-loader@8.3.0 npm ERR! node_modules/babel-loader npm ERR! dev babel-loader@"^8.2.2" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! See C:\Users\<UserName>\AppData\Local\npm-cache\eresolve-report.txt for a full report. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\<UserName>\AppData\Local\npm-cache\_logs\2023-04-11T12_23_17_316Z-debug-0.log |
ERR!
が赤字なので、もう真っ赤っかですよ。
2023----debug-0.logを見たところ、よく分からないがライブラリ的なのが無い模様。
nodeのライブラリはすぐに更新されていなくなるので、古いのを入れる的なコマンドで回避できたはず、ということで、
npm startを実行した場所で以下を実行。
1 |
npm install --force |
またインストールが始まり、終わった後で、npm tart
を実行したら、動いた!
Excelが立ち上がり、Task Paneの > Run
を押すと、Current Cellが黄色に塗りつぶされた。
動いたのは良いが、VSCodeでデバッグしないといけないらしい。
C# と VS を使いたかったんだけど・・・。
最近は何を作るにもWebアプリみたいになってきたね。
Web面倒なんだよね・・・