Office Add-inのマニフェストファイルをつくる

”Office Add-in”については書籍はほとんどありません。

Webの情報が頼りです。

というわけで、ドキュメントに目を通してみます。

https://docs.microsoft.com/ja-jp/office/dev/add-ins/

Office Add-inに必要なものは、

  • Add-inの概要が書かれたマニフェストファイル(XML)
  • Add-inの起点となるHTMLファイル
  • Add-inの動作を記述したJavaScriptファイル

ですね。

あと、2と3のファイルをホストするサーバーも必要ですが、個人で使う分や開発段階では開発サーバーでも十分でしょう。

# マニフェストファイルとは

Office Add-inは、アプリケーションの起動時にマニフェストファイルを読み込みます。

そしてそこに書かれているホストドメインを、Officeアプリケーションの中で開けるようになります。

Officeとブラウザの間でプロセス間通信をしながら処理をするような形です。

さて、このマニフェストファイル。

Microsoftの審査に通ったものはストアにあるのですが、

開発段階では「サイドロード」という方法でOfficeに読み込ませます。

ところがこの説明がなかなかわかりづらい……

マニフェストの作り方や、プラットフォームごとのサイドロードの仕方が別のページにあったり、

「サイドロードしたファイルの削除の仕方」が見つからなかったり……

いくつか手探りでやったことをメモします。

# マニフェストの作製

Visual Studio(+IIS)でテンプレートを使うこともできますが、何せ起動が遅い。

公式ドキュメントの説明を読んでも、なかなかわからないところが多いです。

ここでは公式が推奨しているもう一つの方法、Node.jsのツールを使う方法をお勧めします。

https://github.com/OfficeDev/generator-office

まずはnpmを使って専用のツールをインストールします。

※私はyarn派ですけどね。

プロジェクトごとに使い分ける性質のものでもないので、グローバルでいいでしょう。

npm -g install yo
yo office

インストールが終わったら、そのまま yo と入力すれば、インタラクティブな表示がされます。

あとは作りたいコンテンツに合わせてカーソルで選んでいくだけ。

AngularやReactも使えますし、Typescriptも使えます。

※※ここには表示されていませんが、私はVue.js派です。もちもんVueも問題なく使えます。

一通りの設定ができたら、必要なファイルが作成されます。

これでプロジェクトのひな型ができました。

# サイドロードしてみる

yoコマンドでPowerShellに表示される指示のとおり

cd ”My Office Add-in”
npm start

と打ち込めばOk……

のはずなのですが、なにやらエラーがでる。

Error: Unable to sideload the Office Add-in. 
Error: Unable to delete registry value "C:\My Office Add-in\manifest.xml" in key "HKCU\SOFTWARE\Microsoft\Office\16.0\W
ef\Developer".
ProcessUncleanExitError: DELETE command exited with code 1:

・スG・ス・ス・ス[: ・スw・ス閧ウ・ス黷ス・ス・ス・スW・スX・スg・ス・ス ・スL・ス[・スワゑソス・スヘ値・ス・ス・ス・ス・スツゑソス・ス・スワゑソス・ス・スナゑソス・ス・ス

どうやらレジストリをいじるのに失敗しているようですね。

最後に文字化けしているのが怪しい……

というわけで、PowerShellの文字コードをUTF-8に変えてみます。

chcp 65001

今度はうまくいきました!

Add-inを読み込んだWordファイルが開かれます。

ホームタグ上に”Show Taskpane”というボタンが増えています。

このボタンを押すと、Wordの右側に、枠で仕切られた画面が表示されます。

そして画面にある【RUN】ボタンを押すと、文書の中に”Hello, World”と青文字で入力されました。

後はこれをベースに処理を書き加えていけば、オリジナルのAdd-inの完成です。

※このエラーは環境によっては出ないようですね。

ただ、このエラー文に示されているレジストリキーはとても役に立つので、保存しておきます。

PowerShellでエラーのリダイレクトには ”2>” を使います。

# PR

JavaScript 至極の入門書!すぐに動かして楽しめるVue/Nuxtもオススメ!

ゴールデンブリッジでは、
翻訳・通訳・インバウンドツアー・国際会議運営など
ご用命をお待ちしております!
また、翻訳に関わるツール・ソフトウェアの開発等についてもお気軽にお声掛けください。

株式会社ゴールデンブリッジ 公式Webサイト