Script Labでスニペットを作成した場合は、スタンドアロン アドインにすることもできます。 Script Lab から、Office アドイン用の Yeoman ジェネレーター ("Yo Office" とも呼ばれます) によって生成されたプロジェクトにコードをコピーできます。 その後、最終的に他のユーザーに展開できるアドインとしてコードの開発を続けることができます。
この記事の手順は Visual Studio Code を参照していますが、任意のコード エディターを使用できます。
新しい Yo Office プロジェクトを作成する
スニペット コードの新しい開発場所となるスタンドアロンのアドイン プロジェクトを作成する必要があります。
コマンド yo office --projectType taskpane --ts true --host <host> --name "my-add-in" を実行します。ここで、<host> は次のいずれかの値です。
- Excel
- outlook
- PowerPoint
- Word
重要
--name の引数値は、スペースがない場合でも二重引用符で囲む必要があります。
前のコマンドでは、 my-add-in という名前の新しいプロジェクト フォルダーを作成します。 指定したホストで実行するように構成されており、TypeScript を使用します。 Script Lab は既定で TypeScript を使用しますが、ほとんどのスニペットは JavaScript です。 必要に応じて Yo Office JavaScript プロジェクトをビルドできますが、コピーするコードが JavaScript であることを確認してください。
Script Lab でスニペットを開く
Script Lab の既存のスニペットを使用して、Yo Office で生成されたプロジェクトにスニペットをコピーする方法について説明します。
- Office (Word、Excel、PowerPoint、または Outlook) を開き、Script Lab を開きます。
- [Script Lab]>[コード] を選択します。 Outlook で作業している場合は、メール メッセージを開いて、リボンに Script Lab を表示します。
- Script Labでスニペットを開きます。 既存のサンプルから始める場合は、[Script Lab] 作業ウィンドウに移動し、[サンプル] を選択します。
スニペット コードを Visual Studio コードにコピーする
これで、VS Code のスニペットから Yo Office プロジェクトにコードをコピーできます。
- VS Code で、my-add-in プロジェクトを 開きます。
次の手順では、Script Labのいくつかのタブからコードをコピーします。
作業ウィンドウ コードをコピーする
- VS Code で、/src/taskpane/taskpane.ts ファイルを開きます。 JavaScript プロジェクトを使用している場合、ファイル名は taskpane.jsです。
- Script Lab で、[スクリプト] タブを選択します。
- [スクリプト] タブのすべてのコードをクリップボードにコピーします。 taskpane.ts (または JavaScript の場合はtaskpane.js) の内容全体をコピーしたコードに置き換えます。
作業ウィンドウ HTML をコピーする
- VS Code で、/src/taskpane/taskpane.html ファイルを開きます。
- Script Lab で、[HTML] タブを選択します。
-
[HTML] タブのすべての HTML をクリップボードにコピーします。
<body>タグ内のすべての HTML をコピーした HTML に置き換えます。
作業ウィンドウ CSS をコピーする
- VS Code で、/src/taskpane/taskpane.css ファイルを開きます。
- Script Lab で、[CSS] タブを選択します。
- [CSS] タブのすべての CSS をクリップボードにコピーします。 taskpane.css の内容全体をコピーした CSS に置き換えます。
- 前の手順で更新したファイルへのすべての変更を保存します。
jQuery サポートを追加する
Script Lab は、スニペットで jQuery を使用します。 コードを正常に実行するには、この依存関係を Yo Office プロジェクトに追加する必要があります。
taskpane.html ファイルを開き、次のスクリプト タグを
<head>セクションに追加します。<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.js"></script>注:
jQuery の特定のバージョンは異なる場合があります。 [ライブラリ] タブを選択すると、Script Lab が使用しているバージョンを確認できます。
VS Code でターミナルを開き、次のコマンドを入力します。
npm install --save-dev jquery@3.1.1 npm install --save-dev @types/jquery@3.3.1
追加のライブラリ依存関係を持つスニペットを作成した場合は、必ずそれらを Yo Office プロジェクトに追加してください。 Script Lab の [ライブラリ] タブですべてのライブラリの依存関係のリストを見つけます。
ハンドルの初期化
Script Lab は、Office.onReady の初期化を自動的に処理します。 独自の Office.onReady ハンドラーを提供するには、コードを変更する必要があります。
taskpane.ts (または JavaScript の場合は taskpane.js) ファイルを開きます。
Excel、PowerPoint、またはWordの場合は、次の値を置き換えます。
$("#run").on("click", () => tryCatch(run));置換後:
Office.onReady(function () { // Office is ready. $(document).ready(function () { // The document is ready. $("#run").on("click", () => tryCatch(run)); }); });Outlook の場合は、次を置き換えます。
$("#get").on("click", get); $("#set").on("click", set); $("#save").on("click", save);置換後:
Office.onReady(function () { // Office is ready $(document).ready(function () { // The document is ready $("#get").on("click", get); $("#set").on("click", set); $("#save").on("click", save); }); });ファイルを保存します。
カスタム関数
スニペットでカスタム関数を使用する場合は、Yo Office カスタム関数テンプレートを使用する必要があります。 カスタム関数をスタンドアロンのアドインに変換するには、次の手順に従います。
コマンド
yo office --projectType excel-functions --ts true --name "my-functions"を実行します。重要
--nameの引数値は、スペースがない場合でも二重引用符で囲む必要があります。Excel を開き、次に Script Lab を開きます。
[Script Lab]>[コード] を選択します。
Script Labでスニペットを開きます。 既存のサンプルから始める場合は、[Script Lab] 作業ウィンドウに移動し、[サンプル] を選択し、[カスタム関数] セクションで検索します。
/src/functions/functions.ts ファイルを開きます。 JavaScript プロジェクトを使用している場合、ファイル名は functions.js です。
Script Lab で、[スクリプト] タブを選択します。
[スクリプト] タブのすべてのコードをクリップボードにコピーします。 コピーしたコードを functions.ts の上部 (または JavaScript の 場合はfunctions.js ) にコードを貼り付けます。
ファイルを保存します。
スタンドアロン アドインをテストする
すべての手順が完了したら、スタンドアロン アドインを実行してテストします。 次のコマンドを実行して開始します。
npm start
Office が起動し、リボンからアドインの作業ウィンドウを開くことができます。 おめでとうございます! これで、スタンドアロン プロジェクトとしてアドインのビルドを続行できます。
開発サーバーを停止してアドインをアンインストールする準備ができたら、次のコマンドを実行します。
npm stop
コンソール ログ
Script Lab の多くのスニペットは、作業ウィンドウの下部にあるコンソール セクションに出力を書き込みます。 Yo Office プロジェクトにはコンソール セクションがありません。 すべての console.log* ステートメントは、既定のデバッグ コンソール (ブラウザー開発ツールなど) に書き込みます。 出力を作業ウィンドウに移動する場合は、コードを更新する必要があります。
Office Add-ins