Office アドインの構築Building Office Add-ins

ヒント

この記事を読む前に、「Office Add-ins platform overview (Office アドイン プラットフォームの概要)」をご覧ください。Please review Office Add-ins platform overview before reading this article.

Office アドインは、Office アプリケーションの UI と機能を拡張し、Office ドキュメント内のコンテンツを操作します。Office Add-ins extend the UI and functionality of Office applications and interact with content in Office documents. Word、Excel、PowerPoint、OneNote、Project、Outlook の拡張と操作を行うアドインの構築には、一般的な Web テクノロジを使用します。You'll use familiar web technologies to create Office Add-ins that extend and interact with Word, Excel, PowerPoint, OneNote, Project, or Outlook. 構築するアドインは、Windows、Mac、iPad やブラウザー上など、複数のプラットフォーム上の Office で実行できます。The add-ins you build can run in Office across multiple platforms, including Windows, Mac, iPad, and in a browser. この記事では、Office アドイン開発の概要を説明します。This article provides an introduction to developing Office Add-ins.

Office アドインの作成Creating an Office Add-in

Office アドイン用の Yeoman ジェネレーターまたは Visual Studio を使用して Office アドインを作成することができます。You can create an Office Add-in by using the Yeoman generator for Office Add-ins or Visual Studio.

Office アドイン用の Yeoman ジェネレーターYeoman generator for Office Add-ins

Office アドイン用の Yeoman ジェネレーターを使用することで、Visual Studio Code やその他のエディターで管理することができる、Node.js Office アドイン プロジェクトを作成できます。The Yeoman generator for Office Add-ins can be used to create a Node.js Office Add-in project that can be managed with Visual Studio Code or any other editor. ジェネレーターでは、次のいずれのホスト用の Office アドインも作成できます。The generator can create Office Add-ins for any of the following:

  • ExcelExcel
  • OneNoteOneNote
  • OutlookOutlook
  • PowerPointPowerPoint
  • ProjectProject
  • WordWord
  • Excel のカスタム関数Excel custom functions

プロジェクトを作成するのに、HTML、CSS、および JavaScript を使用するのか、Angular または React を使用するのかを選択できます。You can choose to create the project using HTML, CSS and JavaScript, or using Angular or React. いずれのフレームワークを選択した場合も、JavaScript と Typescript の間から選択することができます。For whichever framework you choose, you can choose between JavaScript and Typescript as well. Yeoman ジェネレーターを使用してアドインを作成する方法については、「Visual Studio Code を使用して Office アドインを開発する」を参照してください。For more information about creating add-ins with the Yeoman generator, see Develop Office Add-ins with Visual Studio Code.

Visual StudioVisual Studio

Visual Studio は、Excel、Outlook、Word、および PowerPoint 用の Office アドインの作成に使用できます。Visual Studio can be used to create Office Add-ins for Excel, Outlook, Word, and PowerPoint. Office アドイン プロジェクトは Visual Studio ソリューションの一部として作成され、HTML、CSS、および JavaScript が使用されます。An Office Add-in project gets created as part of a Visual Studio solution and uses HTML, CSS, and JavaScript. Visual Studio を使用してアドインを作成する方法については、「Visual Studio を使用して Office アドインを開発する」を参照してください。For more information about creating add-ins with Visual Studio, see Develop Office Add-ins with Visual Studio.

注意

Visual Studio を使用して Office アドインを作成することは可能ですが、Yeoman ジェネレーターを使用すると、いくつかの注目すべき方法で開発者のエクスペリエンスが向上します。Although it's possible to create Office Add-ins using Visual Studio, using the Yeoman generator provides a better developer experience in some notable ways.

  • Yeoman ジェネレーターは、Visual Studio が Office アドイン プロジェクト用に提供するよりも幅広いプロジェクトの種類、フレームワーク、および言語のオプションを提供します。The Yeoman generator provides a wider range of options for project types, frameworks, and languages than Visual Studio does for Office Add-in projects.

  • Yeoman ジェネレーターのプロジェクト テンプレートは、Visual Studio のプロジェクト テンプレートよりも頻繁に更新されます。Project templates in the Yeoman generator are updated more frequently than project templates in Visual Studio.

Script Lab を使用して API を調べるExploring APIs with Script Lab

Script Lab は、Excel や Word などの Office プログラムでの作業中に Office JavaScript API を調査し、コード スニペットを実行できるようにするアドインです。Script Lab is an add-in that enables you to explore the Office JavaScript API and run code snippets while you're working in an Office program such as Excel or Word. これは、AppSource から無料で利用でき、アドインで必要な機能のプロトタイプを作成したり検証したりする場合に、開発ツールキットに含めておくと便利なツールです。It's available for free via AppSource and is a useful tool to include in your development toolkit as you prototype and verify the functionality you want in your add-in. Script Lab では、組み込みのサンプルのライブラリにアクセスして、簡単に API を試すことができます。また、独自のコードの開始点としてサンプルを使用することもできます。In Script Lab, you can access a library of built-in samples to quickly try out APIs or even use a sample as the starting point for your own code.

次の 1 分間のビデオで、Script Lab の実際の動作をご覧ください。The following one-minute video shows Script Lab in action.

Excel、Word、PowerPoint での Script Lab の実行を紹介するプレビュー ビデオ。Preview video showing Script Lab running in Excel, Word, and PowerPoint.

Script Lab の詳細については、「Script Lab を使用して Office JavaScript API を調べる」を参照してください。For more information about Script Lab, see Explore Office JavaScript APIs using Script Lab.

Office UI の拡張Extending the Office UI

Office アドインは、作業ウィンドウ、コンテンツ アドイン、ダイアログ ボックスなど、アドイン コマンドや HTML コンテナーを使用 Office UI を拡張することができます。An Office Add-in can extend the Office UI by using add-in commands and HTML containers such as task panes, content add-ins, or dialog boxes.

  • アドイン コマンド を使用すると、Office の既定のリボンにカスタム タブ、ボタン、メニューを追加したり、ユーザーが Office ドキュメント内のテキストまたは Excel 内のオブジェクトを右クリックした際に表示される既定のコンテキスト メニューを拡張したりすることができます。Add-in commands can be used to add custom tabs, buttons, and menus to the default ribbon in Office, or to extend the default context menu that appears when users right-click text in an Office document or an object in Excel. ユーザーがアドイン コマンドを選択すると、アドイン コマンドで指定されているタスク (JavaScript コードの実行、作業ウィンドウを開く、ダイアログ ボックスの起動など) が実行されます。When users select an add-in command, they initiate the task that the add-in command specifies, such as running JavaScript code, opening a task pane, or launching a dialog box.

  • 作業ウィンドウコンテンツ アドインダイアログ ボックスなどの HTML コンテナーを使用すると、カスタム UI を表示させたり Office アプリケーション内で追加機能を表示させたりすることができます。HTML containers like task panes, content add-ins, and dialog boxes can be used to display custom UI and expose additional functionality within an Office application. 各作業ウィンドウ、コンテンツ アドイン、またはダイアログ ボックスのコンテンツと機能は、指定した Web ページに由来します。The content and functionality of each task pane, content add-in, or dialog box derives from a web page that you specify. これらの Web ページでは、Office JavaScript API を使用することで、アドインが実行されている Office ドキュメントのコンテンツを操作できます。また、外部 Web サービスの呼び出しやユーザー認証の要求など、Web ページが一般的に行うその他の機能も実行できます。Those web pages can use the Office JavaScript API to interact with content in the Office document where the add-in is running, and can also do other things that web pages typically do, like call external web services, facilitate user authentication, and more.

次の図では、リボン上に表示されるアドイン コマンド、ドキュメント右側に表示される作業ウィンドウ、およびドキュメント上に表示されるダイアログ ボックスまたはコンテンツ アドインを示しています。The following image shows an add-in command in the ribbon, a task pane to the right of the document, and a dialog box or content add-in over the document.

Office ドキュメントのリボン、タスク ウィンドウ、ダイアログ ボックス上のアドイン コマンドを示す図

Office UI の拡張に関する詳細については、「Office アドイン用の Office UI 要素」を参照してください。For more information about extending the Office UI, see Office UI elements for Office Add-ins.

開発の中心概念Core development concepts

Office アドインは、2 つの部分から構成されます。An Office Add-in consists of two parts:

  • アドインの設定と機能を定義るアドイン マニフェスト (XML ファイル)。The add-in manifest (an XML file) that defines the settings and capabilities of the add-in.

  • 作業ウィンドウ、コンテンツ アドイン、ダイアログ ボックスなど、アドインの UI と機能を定義する Web アプリケーション。The web application that defines the UI and functionality of add-in components such as task panes, content add-ins, and dialog boxes.

Web アプリケーションでは、Office JavaScript API を使用することで、アドインが実行されている Office ドキュメント内のコンテンツを操作します。The web application uses the Office JavaScript API to interact with content in the Office document where the add-in is running. アドインは、外部 Web サービスの呼び出しやユーザー認証の要求など、Web ページが一般的に行うその他の機能も実行することができます。Your add-in can also do other things that web applications typically do, like call external web services, facilitate user authentication, and more.

アドインの設定と機能を定義するDefining an add-in's settings and capabilities

Office アドインのマニフェスト (XML ファイル) は、アドインの設定と機能を定義します。An Office Add-in's manifest (an XML file) defines the settings and capabilities of the add-in. 次のような要素を定義するには、マニフェストを構成します。You'll configure the manifest to specify things such as:

  • アドインを説明するメタデータ (ID、バージョン、説明、表示名、既定のロケールなど)。Metadata that describes the add-in (for example, ID, version, description, display name, default locale).
  • アドインが実行される Office アプリケーション。Office applications where the add-in will run.
  • アドインに必要なアクセス許可。Permissions that the add-in requires.
  • アドインによって作成されるカスタム UI (カスタム タブ、リボンのボタンなど) などの統合も含めた、アドインの Office との統合方法。How the add-in integrates with Office, including any custom UI that the add-in creates (for example, custom tabs, ribbon buttons).
  • ブランドおよびコマンドの図像としてアドインで使用される画像の場所。Location of images that the add-in uses for branding and command iconography.
  • アドインの寸法 (例: コンテンツ アドインの寸法、Outlook アドインに対して要求される高さなど)。Dimensions of the add-in (for example, dimensions for content add-ins, requested height for Outlook add-ins).
  • メッセージや予定のコンテキストでアドインをアクティブにさせるタイミングを指定するルール (Outlook アドインのみ)。Rules that specify when the add-in activates in the context of a message or appointment (for Outlook add-ins only).

マニフェストの詳細については、「Office アドインの XML マニフェスト」を参照してください。For detailed information about the manifest, see Office Add-ins XML manifest.

Office ドキュメント内のコンテンツを操作するInteracting with content in an Office document

Office アドインでは、Office JavaScript API を使用することで、アドインが実行されている Office ドキュメント内のコンテンツを操作できます。An Office Add-in can use the Office JavaScript APIs to interact with content in the Office document where the add-in is running.

Office JavaScript API へのアクセスAccessing the Office JavaScript library

Office JavaScript ライブラリには、https://appsforoffice.microsoft.com/lib/1/hosted/Office.js にある Office JS コンテンツ配信ネットワーク (CDN) を経由してアクセスできます。The Office JavaScript library can be accessed via the Office JS content delivery network (CDN) at: https://appsforoffice.microsoft.com/lib/1/hosted/Office.js. アドインの Web ページで Office JavaScript API を使用するには、ページの <head> タグにある <script> タグに含まれている CDN を参照する必要があります。To use Office JavaScript APIs within any of your add-in's web pages, you must reference the CDN in a <script> tag in the <head> tag of the page.

<head>
    ...
    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
</head>

注意

プレビュー API を使用するには、CDN (https://appsforoffice.microsoft.com/lib/beta/hosted/office.js) にある Office JavaScript ライブラリのプレビュー バージョンを参照します。To use preview APIs, reference the preview version of the Office JavaScript library on the CDN: https://appsforoffice.microsoft.com/lib/beta/hosted/office.js.

IntelliSense の入手方法など、Office JavaScript ライブラリにアクセスする方法の詳細については、「JavaScript API for Office ライブラリをそのコンテンツ配信ネットワーク (CDN) から参照する」をご覧ください。For more information about accessing the Office JavaScript library, including how to get IntelliSense, see Referencing the JavaScript API for Office library from its content delivery network (CDN).

API モデルAPI models

Office JavaScript API には、2 つの異なるモデルがあります。The Office JavaScript APIs include two distinct models:

  • ホスト固有 API では、特定の Office アプリケーションにネイティブなオブジェクトを操作するために使用できる、厳密に型指定されたオブジェクトが提供されます。Host-specific APIs provide strongly-typed objects that can be used to interact with objects that are native to a specific Office application. たとえば、Excel JavaScript API を使用して、ワークシート、範囲、テーブル、グラフなどにアクセスすることができます。For example, you can use the Excel JavaScript APIs to access worksheets, ranges, tables, charts, and more. ホスト固有API は現在、ExcelWord、および OneNote 用に使用できます。Host-specific APIs are currently available for Excel, Word, and OneNote. この API モデルでは Promise が使用され、Office ホストに送信する各要求で複数の操作を指定することが可能です。This API model uses promises and allows you to specify multiple operations in each request you send to the Office host. この方法によるバッチ操作を行うと、Office on the web アプリケーションのパフォーマンスが大幅に向上します。Batching operations in this manner can significantly improve add-in performance in Office on the web applications. ホスト固有の API は Office 2016 で導入されました。Office 2013 の操作には使用できません。Host-specific APIs were introduced with Office 2016 and cannot be used to interact with Office 2013.

  • 共通 API を使用すると、複数の種類の Office アプリケーション間で共通の UI、ダイアログ、クライアント設定などの機能にアクセスすることができます。Common APIs can be used to access features such as UI, dialogs, and client settings that are common across multiple types of Office applications. この API モデルでは Callback が使用され、Office ホストに送信する各要求で指定できる操作は、1 つのみです。This API model uses callbacks, where you can only specify one operation in each request you send to the Office host. 共通 API は Office 2013 で導入されました。Office 2013 以降の操作に使用できます。Common APIs were introduced with Office 2013 and can be used to interact with Office 2013 or later. Outlook と PowerPoint を操作するための API を含む、共通 API オブジェクト モデルの詳細については、「共通 JavaScript API オブジェクト モデル」を参照してください。For details about the Common API object model, which includes APIs for interacting with Outlook and PowerPoint, see Common JavaScript API object model.

注意

Excel のカスタム関数の場合は、計算の実行を優先する独自のランタイム内で実行されるため、少し異なるプログラミング モデルが使用されます。Excel Custom functions run within a unique runtime that prioritizes execution of calculations, and therefore uses a slightly different programming model. 詳細については、「カスタム関数のアーキテクチャ」を参照してください。For details, see Custom functions architecture.

Office JavaScript API の詳細については、「JavaScript API for Office について」を参照してください。For additional information about the Office JavaScript APIs, see Understanding the JavaScript API for Office.

API 要件セットAPI requirement sets

要件セットは、API メンバーの名前付きグループです。Requirement sets are named groups of API members. 要件セットは、ExcelApi 1.7 要件セット (Excel でのみ使用可能な API のセット) などのように Office ホストに固有の場合もあれば、DialogApi 1.1 要求セット (ダイアログ API がサポートされているすべての Office アプリケーションで使用できる API セット) などのように複数のホストで共通の場合もあります。Requirement sets can be specific to Office hosts, such as the ExcelApi 1.7 requirement set (a set of APIs that can only be used in Excel), or common to multiple hosts, such as the DialogApi 1.1 requirement set (a set of APIs that can be used in any Office application that supports the Dialog API).

アドインは、要求セットを使用することで、アドインが使用する必要がある API メンバーが Office ホストでサポートされているかどうかを判別できます。Your add-in can use requirement sets to determine whether the Office host supports the API members that it needs to use. 詳細については、「Office ホストと API 要件を指定する」を参照してください。For more information about this, see Specify Office hosts and API requirements.

要件セットのサポートは、Office ホスト、バージョン、プラットフォームごとに異なります。Requirement set support varies by Office host, version, and platform. 各 Office アプリケーションでサポートされているプラットフォーム、要求セット、および共通 API の詳細については、「Office アドイン ホストとプラットフォームの可用性」を参照してください。For detailed information about the platforms, requirement sets, and Common APIs that each Office application supports, see Office Add-in host and platform availability.

Office アドインのテストとデバッグTesting and debugging an Office Add-in

アドインの開発中は、_サイドロード_という手法を使用してアドインをローカルでテストできます。As you develop your add-in, you can test it locally by using a technique known as sideloading. アドインをサイドロードする手順はプラットフォームによって異なり、一部のケースでは、製品ごとに異なります。The procedure for sideloading an add-in varies by platform, and in some cases, by product as well. 同様に、アドインのデバッグ手順も、プラットフォームや製品によって異なります。Likewise, the procedure for debugging an add-in can also vary by platform and product. テストとデバッグの詳細については、「Office アドインのテストとデバッグ」を参照してください。For more information about testing and debugging, see Test and debug Office Add-ins.

Office アドインの公開Publishing an Office Add-in

アドインを他のユーザーと共有する準備ができたら、目的に一番合った展開方法を使用してアドインを共有します。When you're ready to share your add-in with others, you'll do so by using the deployment method that best meets your objectives. たとえば、組織内のユーザーにアドインを展開する場合は、一元展開を使用するか、アドインを SharePoint アプリ カタログで公開することをお勧めします。For example, to deploy an add-in to users within your organization, you might use centralized deployment or publish the add-in to a SharePoint app catalog. すべてのユーザーが入手できるようにアドインを一般公開する場合は、アドインを AppSource で公開できます。If you want to share your add-in publicly for anyone to obtain, you can publish the add-in to AppSource. 公開の詳細については、「Office アドインの展開と公開」を参照してください。For more information about publishing, see Deploy and publish Office Add-ins.

次のステップNext steps

この記事では、Office アドインの異なる作成方法を説明し、Office JavaScript API の調査とアドイン機能のプロトタイプ作成における効果的なツールとして Script Lab を紹介し、Office アドインの開発、テスト、および公開に関する重要な概念の説明を行いました。This article has outlined the different ways to create Office Add-ins, introduced Script Lab as a valuable tool for exploring Office JavaScript APIs and prototyping add-in functionality, and described important Office Add-ins development, testing, and publishing concepts. 初歩的な情報の説明は以上になります。Office アドインにの行程を先に進むには、 次の手順を実行してください。Now that you've explored this introductory information, consider continuing your Office Add-ins journey along the following paths.

Office アドインを作成するCreate an Office add-in

5 分間のクイック スタートを完了することで、Excel、OneNote、Outlook、PowerPoint、Project、または Word 用の基本的なアドインを簡単に作成することができます。You can quickly create a basic add-in for Excel, OneNote, Outlook, PowerPoint, Project, or Word by completing a 5-minute quick start. 以前にクイック スタートを完了している場合で、より複雑なアドインを作成したい場合は、チュートリアルを試してみてください。If you've previously completed a quick start and want to create a slightly more complex add-in, you should try the tutorial.

Script Lab を使用して API を調べるExplore the APIs with Script Lab

Office JavaScript API でどのような機能が提供されているかを把握するには、Script Lab に組み込まれているサンプルのライブラリを参照してください。Explore the library of built-in samples in Script Lab to get a sense for the capabilities of the Office JavaScript APIs.

詳細情報Learn more

Office アドインの開発、テスト、公開の詳細については、このドキュメントを参照してください。Learn more about developing, testing, and publishing Office Add-ins by exploring this documentation.

ヒント

どのようなアドインを構築する場合でも、このドキュメントの 「中心概念」セクションに記載する情報に加え、構築するアドインの種類に対応するホスト固有のセクション (たとえば、Excel) に記載する情報を使用してください。For any add-in that you build, you'll use information in the Core concepts section of this documentation, along with information in the host-specific section that corresponds to the type of add-in you're building (for example, Excel).

目次を表示する画像

関連項目See also