個人開発でVSTOは使わない方がいい理由

AWS

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 に送信することはできません。と注意書きが書かれています。

ソリューションを Microsoft AppSource と Office で利用できるようにする - Marketplace publisher
Office アドインと SharePoint アドインをパートナー センター経由で Microsoft AppSource にアップロードする。

よってこの一文から、VSTOアドインはAppSourceストアで公開できないことがわかりました。

さようなら、AppSource。(。・ω・)ノ゙ バイナラ~

officeストアにも公開できない

VSTOで開発されたアドインはofficeストアでも公開できません。

It is not possible, VSTO have to be deployed via an EXE installation package.

Attention Required! | Cloudflare

VSTOはEXE形式のインストーラーで配布されるもので、officeストアではこれを禁止しているようです。

ちなみにBingChatでも英語で質問すると(ここポイント)officeストアに公開できないことを回答してくれます。

日本語で質問すると正反対の回答が返ってきます。どうなっとんねん。。。( ;´Д`)

インストーラーのみ公開しても信頼された証明書が無いとインストールできない

じゃあインストーラーのEXEをGitHub に公開したらいいんじゃない?!と思って色々試行錯誤しましたが、結果としては信頼された証明書がないとインストールさせてもらえませんでした。

その前に余談ですが、GitHubにあげたばかりのzipファイルをEdgeでダウンロードしようとすると、「信頼されてない!」「危ないファイルだ!」などと危険と警告を出しまくりダウンロードしようとする意欲を削いできます (まぁ無理矢理ダウンロードすればいいだけの話ですが)

Edgeの誘惑をすり抜けてやっとダウンロードしたとしても、EXE実行時にDefenderによって無効化されます (まぁ無理矢理実行すればいいだけの話ですが)

EdgeとWindowsがタッグを組んでダウンロードしようとしてくれる優しいユーザーの心を破壊し尽くしたあと、VSTOインストーラーによって「証明書が信頼されてないから駄目じゃ」となってしまうのです。。。

詳細には、インターネットからダウンロードしたVSTOアプリのインストーラーは、デフォルトでは信頼された証明書が必要になります。

これを回避する方法は2つあると思ってて、1つはレジストリを変更してインターネットからダウンロードした場合はAuthentiCode不要にさせる方法です。→レジストリ変更してインストールしようとしてくれるユーザーなんてゼロだと思うので却下。

Configure inclusion list security - Visual Studio (Windows)
Configure the ClickOnce trust prompt to control whether end users are given the option of installing Office solutions by saving a trust decision to the inclusio...

もう1つは素直に信頼されたコードサイニング証明書を取得する方法です()。コードサイニング証明書を日本の証明機関から入手しようとすると年間7万円取られたりしますので私は諦めてしまいましたが、以下のページによるとCertumというサイトからコードサイニング証明書を入手できるようです。

オープンソース開発者であれば89USDで物理USBが付いてきます。

Open Source Code Signing - set
Who can use Open Source Code Signing Certificate?programmers and software developers working under Open Source licenses.What is Open Source Code Signing Certifi...

参考にさせていただいたURLは以下です。私と同じ悩みを抱えておられて解決策を提示されてる方は素晴らしい(´;ω;`)

個人開発者でコードサイニング証明書を取ろう 2021|Gakuto Matsumura:弦生ささと|pixivFANBOX
大前提として、個人開発者にコードサイニング証明書を提供してくれるCA(第三者証明機関)はとても少ない。日本語でいまだに存在するのは多分CoMoDo(SETIGO)とDigiCertか、DigiCertの関連くらい。CoMoDoがだいたい年2.3万(実はこの倍はかかる。後記)で、DigiCertが年10万くらい。ただこれ...

VSTOアドインのかわりにウェブアドインを使ってみる

Officeアドインの開発方法はVBAやVSTOだけではありません。ブラウザからでも動作するようになった昨今ではむしろ時代遅れなのかもしれません。

Office アドイン プラットフォームの概要 - Office Add-ins
HTML、CSS、JavaScript などの一般的な Web テクノロジを使用し、Word、Excel、PowerPoint、OneNote、Project、Outlook を拡張および対話操作できます。

上記のページではウェブアドインという方法でアドインの開発ができるようです。ウェブテクノロジっつーやつでGUI画面も作れて、office.js を使ってドキュメントデータも思いのままに操ることができるようです。これならAppSourceストアにも掲載できます。

Office アドインの Excel JavaScript オブジェクト モデル - Office Add-ins
Excel JavaScript API の主要なオブジェクトの種類と、それらを使用して Excel のアドインを構築する方法を説明します。

GUIが不要な場合はoffice scriptsというものがあります。TypeScriptで書くことができPowerAutomateから呼び出すことができるものらしいです。

Excel の Office スクリプト - Office Scripts
Office スクリプト用の操作レコーダーとコード エディターの概要をご紹介します。

ぜひこの機会にウェブアドインやoffice scriptで自動化してみてはいかがでしょうか。



コメント

タイトルとURLをコピーしました