Office アドイン

[Office用アプリ]v1.1で追加されたgoToByIdAsyncメソッドを試してみました。

前回の記事の通り、Office 2013のService Pack 1が公開され、Office 用アプリにも新しいAPIが追加されました。
今回はマニフェストファイルの変更点も含めて、新しいAPIをテストしてみようと思います。

テストに用いるのは、JavaScript API for Office v1.1で追加されたDocumentオブジェクトの「goToByIdAsync」メソッドです。

・Document.goToByIdAsync method (apps for Office v1.1)
http://msdn.microsoft.com/ja-jp/library/dn482498.aspx
・GoToType enumeration (apps for Office v1.1)
http://msdn.microsoft.com/ja-jp/library/dn482549.aspx

上記ページを見る限り、PowerPointであればスライド番号や定数を指定してスライドを移動できるようなので、結果が分かりやすくテストには適していそうです。

早速書いたマニフェストファイルが下記になります。

<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
  <Id>BABFB200-C1BD-4247-9777-EF53C02801E9</Id>
  <Version>1.0</Version>
  <ProviderName>kinuasa</ProviderName>
  <DefaultLocale>ja-jp</DefaultLocale>
  <DisplayName DefaultValue="新しいAPIのテスト用アプリ" />
  <Description DefaultValue="JavaScript API for Office v1.1のテストです。"/>
  <Hosts>
    <Host Name="Presentation" />
  </Hosts>
  <Methods>
    <Method Name="Office.context.document.goToByIdAsync" />
  </Methods>
  <DefaultSettings>
    <SourceLocation DefaultValue="http://localhost/new_api.html" />
  </DefaultSettings>
  <Permissions>ReadWriteDocument</Permissions>
</OfficeApp>

以前のバージョンと比べて大きく変わっているのが、OfficeApp要素の「xmlns=”http://schemas.microsoft.com/office/appforoffice/1.1″」部分とHosts、Host、Methods要素ですね。

ちなみに、新しいバージョンのマニフェストファイルを書くに当たり、下記のページを参考にしました。

・How to: Specify the Office host applications your app supports using the version 1.1 manifest
http://msdn.microsoft.com/ja-jp/library/dn535870.aspx
・How to: Specify API requirement sets and methods for your app
http://msdn.microsoft.com/ja-jp/library/dn535871.aspx
・Updating the manifest of a mail app from schema v1.0 to v1.1
http://msdn.microsoft.com/ja-jp/library/dn592152.aspx
・Creating a manifest for a mail app to activate in a read or compose form in Outlook (schema v1.1)
http://msdn.microsoft.com/ja-jp/library/dn554255.aspx
・Setting up a mail app for Outlook on tablets and mobile devices (schema v1.1)
http://msdn.microsoft.com/ja-jp/library/dn594603.aspx

新しいバージョンのAPIは公開されたばかりなので、まだまだ資料は少ないですね・・・。
ほとんど手探りの状態です。

アプリ本体(new_api.html)のコードは下記になります。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="robots" content="noindex,nofollow">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
        <title>新しいAPIのテスト用アプリ</title>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.11.0.min.js"></script>
        <script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js"></script>
        <script>
            Office.initialize = function(reason){}
            $(function(){
                $("#btnGotoLast").click(function(){
                    Office.context.document.goToByIdAsync(Office.Index.Last, Office.GoToType.Index, function(asyncResult){
                        if(asyncResult.status == Office.AsyncResultStatus.Failed){
                            $("#result").val(asyncResult.error.message);
                        }
                    });
                });
                
                $("#btnGoto3").click(function(){
                    Office.context.document.goToByIdAsync(3, Office.GoToType.Index, function(asyncResult){
                        if(asyncResult.status == Office.AsyncResultStatus.Failed){
                            $("#result").val(asyncResult.error.message);
                        }
                    });
                });
            });
        </script>
    </head>
    <body>
        <p>
            <input id="btnGotoLast" type="button" value="GotoLast">
            <input id="btnGoto3" type="button" value="Goto3">
        </p>
        <p>
            <textarea id="result"></textarea>
        </p>
    </body>
</html>

気を付けなくてはいけないのがJavaScript API for Office ライブラリを読み込む部分。「https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js」と、ちゃんと新しいバージョンのライブラリを参照しなければ、コードは上手く動作しません。

というわけで、上記コードで早速テストしたところ、アプリを読み込んで、「GotoLast」ボタンをクリックすると最終スライドに、「Goto3」ボタンをクリックすると3枚目のスライドに移動することが確認できました。

AppsForOffice_v1.1_01_01

これで新しいマニフェストファイルも新しいAPIも問題無く動くことが確認できたので、これから新しいAPIになってどう変わったのかをテストしていけそうです。

【編集後記】

実は今回のサンプルを動かすに当たり、なかなかマニフェストが認識せずに苦労しました。
やっぱり、MSDNに書いてある情報も間違っていたりするので、鵜呑みにはできないですね・・・。

Microsoft Office 2013 Service Pack 1が公開されました。前のページ

[Office用アプリ]日経ソフトウエア主催アプリ開発コンテストの案内次のページ

関連記事

  1. アイコン一覧

    Office 2013 アイコン一覧(NUM)

    ・Office 2013 アイコン一覧 NUM…

  2. Office関連

    コンテンツコントロールに外部XMLのデータをマップするWordマクロ

    Word 2007で追加された機能「コンテンツコントロール」を使うと外…

  3. Office関連

    [Excel Services ECMAScript]タイマーでグラフを描画する。

    タイマーで特定のセルの値を増やしていき、それに合わせてグラフを描画して…

  4. Office関連

    Word 2013のアクセス キー一覧

    2013/10/24 追記:下記一覧表をPDFファイルにしました。…

  5. Office関連

    文字列を横方向に移動するWordマクロ(WordBasic編)

    いつもお世話になっているWord MVPの新田さんが、まるでカニの動き…

コメント

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

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP