Office アドイン

Office用アプリ(apps for Office)の概要と開発方法

当ブログでもカテゴリー:JavaScript API for OfficeでOffice用アプリ関連の技術情報を紹介していますが、Office 2013 RTMリリースに伴って、改めてOffice用アプリ(apps for Office)の概要と開発方法についてまとめてみようと思います。

■ Office用アプリ(apps for Office)の概要

Office 2013では新しい機能として「Office用アプリ」が追加されました。
WordやExcelのプレビュー版を触ったことがある人であれば、「挿入」タブに下図のようなボタンが表示されているのをみたことがあるかと思いますが、このボタンから挿入できるのが「Office用アプリ」です。

Office用アプリとは、一言で言ってしまえば”Officeアプリケーションの作業効率を高めてくれるWebアプリ“で、たとえば文書内の文字列を選択しただけで作業ウィンドウ上にその文字列のWeb検索結果を表示したり、文書内に動画プレイヤーやイメージギャラリーといった外部のコンテンツを統合したり、といったことができます。
クラウドサービスとの連携に優れる新しい形のアドイン“、と考えると分かりやすいかもしれません。

■ Office用アプリの実体

Office用アプリは、下図のようにマニフェストファイル(XML)とWebページによって構成され、Microsoftが提供しているJavaScriptライブラリを介することでOfficeドキュメントにアクセスすることができます。

画像は「Office 2013 の開発者のための新機能」より

この”実体はWebページ“というところがポイントで、HTMLやJavaScript、ASPやPHPといったサーバーサイドスクリプト等の、既存のWebテクノロジーの知識をアプリ開発に活かすことができるわけです。

■ Office用アプリの種類

Office用アプリには、作業ウィンドウ上で動作する「作業ウィンドウ アプリ」、ドキュメント内で動作する「コンテンツ アプリ」、メールの件名や本文、宛先メールアドレスを元にOutlookやOutlook Web App上で動作する「メール アプリ」の3つの種類があり、各Office製品がサポートするアプリの種類は下図のようになっています。

画像は「Office 用アプリによるソリューションの開発と展開」より

■ Office用アプリの展開

Office用アプリを配布・展開する場合、ファイルサーバーを利用する「共有フォルダー」、SharePointやSharePoint Onlineを利用する「内部ディレクトリ」、Microsoftが提供する販売・管理用のプラットフォームを利用する「Officeストア」といった方法が用意されているので、アプリの特性や用途に応じて展開方法を選択することができます。

■ Hello Worldアプリの作成

それでは実際にOffice用アプリを作成してみましょう。
今回は配布が最も簡単な「共有フォルダー」方式でアプリを作成してみます。
アプリの開発に最低限必要なものは下記の通りです。

・テキストエディタ
・ネットワーク共有フォルダ
・Webサーバー

上記の中で最も用意しづらいのはWebサーバーだと思いますが、「BlackJumboDog」や「XAMPP」といったサーバーソフトを利用すれば簡単に導入できるかと思います(PHPやMySQLの利用も考えている場合はXAMPPがお薦めです)。
(以前はWebサーバー不要で共有フォルダだけあればアプリの開発・テストが行えたのですが、IEやOfficeのアップデートの影響(と思われる)で、Webサーバー上にアプリを配置しないとアプリが動作しないようになってしまいました。)

    ・マニフェストファイルの準備

  1. 適当な場所にフォルダを作成し、共有設定を行います(\\127.0.0.1\Apps)。
  2. Excelを起動し、オプション画面からセキュリティセンターを開きます。
  3. 信頼できるアプリ カタログ」を選択し、「カタログの URL」欄に手順1.で作成した共有フォルダのパスを入力します。
  4. カタログの追加」ボタンをクリック後「メニューに表示する」にチェックを入れ、「OK」ボタンをクリックします。
  5. 設定を保存しました。次回 Office を起動したときに適用されます。」とのメッセージが表示されるので、一度Excelを終了します。
  6. テキストエディタで下記コードを「HelloWorld.xml」(UTF-8)として作成し、手順1.で作成した共有フォルダにコピーします。
  7. <?xml version="1.0" encoding="UTF-8"?>
    <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
      <Id>368522de-285a-44ea-bb81-2b8afa03cddf</Id>
      <Version>1.0</Version>
      <ProviderName>kinuasa</ProviderName>
      <DefaultLocale>ja-JP</DefaultLocale>
      <DisplayName DefaultValue="こんにちは 世界" />
      <Description DefaultValue="Hello Worldアプリです。"/>
      <IconUrl DefaultValue="http://officeimg.vo.msecnd.net/_layouts/images/general/office_logo.jpg" />
      <Capabilities>
        <Capability Name="Workbook" />
      </Capabilities>
      <DefaultSettings>
        <SourceLocation DefaultValue="http://localhost/apps/HelloWorld.html" />
      </DefaultSettings>
      <Permissions>ReadWriteDocument</Permissions>
    </OfficeApp>

    ※ Id要素:アプリの一意のIDを指定するもので、私は「Generate GUIDs online」で作成しています。
    ※ SourceLocation要素:ソースファイルの場所を指定するもので、アプリの実体となるWebページの場所を指定します。

    ・実体となるWebページの準備

  8. テキストエディタで下記コードを「HelloWorld.html」(UTF-8)として作成し、手順6.のXML、SourceLocation要素のDefaultValue属性の値で指定した場所にコピーします。
  9. <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=Edge">
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
            <script src="https://appsforoffice.microsoft.com/lib/1.0/hosted/office.js"></script>
            <script>
                Office.initialize = function(reason){
                    $(document).ready(function(){
                        $("#btnOK").click(function(){
                            Office.context.document.setSelectedDataAsync("Hello World!!");
                        });
                    });
                }
            </script>
        </head>
        <body>
            <input id="btnOK" type="button" value="OK">
        </body>
    </html>

    ・アプリの実行

  10. Excelを再度起動し、「挿入」タブから「Office 用アプリ」ボタンをクリックします。
  11. Office 用アプリ」ウィンドウが表示されるので「共有フォルダー」をクリックすると、手順6. – 7.で作成した「こんにちは 世界」が表示されます。
  12. こんにちは 世界」を選択して「挿入」ボタンをクリックすると、作業ウィンドウに手順7.で作成した「HelloWorld.html」が表示されます。
  13. 作業ウィンドウの「OK」ボタンをクリックすると、選択セルに「Hello World!!」と入力されます。

以上で作業は終了です。
上記のように、Office用アプリは非常に簡単な手順で作成することができます。
開発にjQueryのようなライブラリも利用でき、効率良くコードを書くこともできますので、興味がある方は是非一度お試しください。

■ 参考Webページ

・Office 用アプリによるソリューションの開発と展開
http://technet.microsoft.com/ja-jp/office/jj149945
・Office 2013 の開発者のための新機能
http://msdn.microsoft.com/ja-jp/library/office/jj229830%28v=office.15%29.aspx
・Office 用アプリの作成
http://msdn.microsoft.com/ja-jp/library/office/jj220060%28v=office.15%29.aspx
・Office 用アプリの概要
http://msdn.microsoft.com/ja-jp/library/office/jj220082%28v=office.15%29.aspx
・Office 2013 用アプリの概要
http://technet.microsoft.com/ja-jp/library/jj219429%28v=office.15%29.aspx
・Office 用アプリ開発の中心となる概念
http://msdn.microsoft.com/ja-jp/library/office/fp161053%28v=office.15%29.aspx
・JavaScript API for Office
http://msdn.microsoft.com/ja-jp/library/fp142185%28v=office.15%29.aspx

Office 2013 オンラインヘルプのリンクを集めてみました。前のページ

[Office用アプリ]Microsoft Translator APIを利用して選択文字列を翻訳する(クロスドメイン対応)。次のページ

関連記事

  1. Office関連

    Acrobatを使ってPDFファイルをNアップするVBAマクロ

    VBAで、B5サイズのPDFファイルを横並びにしてB4サイズのPDFフ…

  2. Office関連

    PowerShellからNetOfficeを使ってExcelを操作する方法

    先日、Excel MVPの伊藤さんがPowerShellからExcel…

  3. Office関連

    「個人用テンプレートの既定の場所」を設定するWordマクロ

    前回の記事で、Word 2013で個人用テンプレート(カスタム テンプ…

  4. Office関連

    ページ番号を取得するWordマクロ

    Wordマクロで選択位置のページ番号を取得する場合、簡単なのはSele…

  5. Office関連

    フッターにページ番号と総ページ数を挿入するWordマクロ

    以前書いた、フッターに「ページ番号 / 総ページ数」を挿入するWord…

  6. Office関連

    [Excel]XLOOKUP関数でより簡単に値を検索できるようになりました!

    下記記事の通り、2019年8月末にVLOOKUP関数やHLOOKUP関…

コメント

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP