2023年の4月〜5月にかけて、VSTOを使ってExcelアドインを開発しました。cliesxという、Excel操作を全てコマンドで且つキーボード操作で行えるというコンセプトです。マウスが嫌いな自分が欲しいツールでもありました。
しかし現時点でリリースしておらず開発も中断しています。VSTOでのアドイン開発はしない方がいいという結論になったためです。なぜVSTOは使わない方がいいのか解説してみます。
この記事のまとめ(長文を読みたくない人向け)
- VSTOで開発したofficeアドインはMicrosoft AppSourceストアに公開できない
- officeストアにも公開できない
- インストーラーを公開しても信頼された証明書が無いとインストールできない
- VSTOアドインは使わずに、ウェブアドインを使ってみては
VSTOとは
VSTOは Visual Studioでofficeアドインが開発できるライブラリです。例えばc#でExcelアドインを開発することができ、リボンやフォームを開発することができます。
VSTOを使うと色々なアドインを開発することができます。
- SharePoint
- Excel
- Word
- Outlook
- PowerPoint
またVSTOドキュメント、フロントエンドはWordやExcelを使い、処理系に.net frameworkを使えます。VBAが嫌いって人はVSTOで幸せになれるかもしれません。
VBAと違ってWebView2などWinFormsで使えるコントロールを使うことができます。また選択した.net frameworkに対応するNuGetライブラリも使用できますので、できることがかなり広がります。
AppSourceストアに公開できない
VSTOのデメリットの1つ目は、AppSourceストアに公開できないという点です。
以下のページではOffice VSTO アドインと COM アドインを Microsoft AppSource に送信することはできません。と注意書きが書かれています。
よってこの一文から、VSTOアドインはAppSourceストアで公開できないことがわかりました。
さようなら、AppSource。(。・ω・)ノ゙ バイナラ~
officeストアにも公開できない
VSTOで開発されたアドインはofficeストアでも公開できません。
It is not possible, VSTO have to be deployed via an EXE installation package.
VSTOはEXE形式のインストーラーで配布されるもので、officeストアではこれを禁止しているようです。
ちなみにBingChatでも英語で質問すると(ここポイント)officeストアに公開できないことを回答してくれます。
日本語で質問すると正反対の回答が返ってきます。どうなっとんねん。。。( ;´Д`)
インストーラーのみ公開しても信頼された証明書が無いとインストールできない
じゃあインストーラーのEXEをGitHub に公開したらいいんじゃない?!と思って色々試行錯誤しましたが、結果としては信頼された証明書がないとインストールさせてもらえませんでした。
その前に余談ですが、GitHubにあげたばかりのzipファイルをEdgeでダウンロードしようとすると、「信頼されてない!」「危ないファイルだ!」などと危険と警告を出しまくりダウンロードしようとする意欲を削いできます (まぁ無理矢理ダウンロードすればいいだけの話ですが)
Edgeの誘惑をすり抜けてやっとダウンロードしたとしても、EXE実行時にDefenderによって無効化されます (まぁ無理矢理実行すればいいだけの話ですが) 。
EdgeとWindowsがタッグを組んでダウンロードしようとしてくれる優しいユーザーの心を破壊し尽くしたあと、VSTOインストーラーによって「証明書が信頼されてないから駄目じゃ」となってしまうのです。。。
詳細には、インターネットからダウンロードしたVSTOアプリのインストーラーは、デフォルトでは信頼された証明書が必要になります。
これを回避する方法は2つあると思ってて、1つはレジストリを変更してインターネットからダウンロードした場合はAuthentiCode不要にさせる方法です。→レジストリ変更してインストールしようとしてくれるユーザーなんてゼロだと思うので却下。
もう1つは素直に信頼されたコードサイニング証明書を取得する方法です()。コードサイニング証明書を日本の証明機関から入手しようとすると年間7万円取られたりしますので私は諦めてしまいましたが、以下のページによるとCertumというサイトからコードサイニング証明書を入手できるようです。
オープンソース開発者であれば89USDで物理USBが付いてきます。
参考にさせていただいたURLは以下です。私と同じ悩みを抱えておられて解決策を提示されてる方は素晴らしい(´;ω;`)
VSTOアドインのかわりにウェブアドインを使ってみる
Officeアドインの開発方法はVBAやVSTOだけではありません。ブラウザからでも動作するようになった昨今ではむしろ時代遅れなのかもしれません。
上記のページではウェブアドインという方法でアドインの開発ができるようです。ウェブテクノロジっつーやつでGUI画面も作れて、office.js を使ってドキュメントデータも思いのままに操ることができるようです。これならAppSourceストアにも掲載できます。
GUIが不要な場合はoffice scriptsというものがあります。TypeScriptで書くことができPowerAutomateから呼び出すことができるものらしいです。
ぜひこの機会にウェブアドインやoffice scriptで自動化してみてはいかがでしょうか。
コメント