Office アドイン

[Office用アプリ]Excel Services ECMAScriptとの連携

[Office用アプリ]カレンダーから日付入力」でも使用していますが、コンテンツアプリを挿入したブックをWebページに埋め込むことで、ブラウザー上でOffice用アプリを利用することができます(Excel Web App経由)。

先日登壇した第一回 Apps for Office 勉強会の中で小ネタとした紹介したのですが、Webページに埋め込んだブックはExcel Services ECMAScript(Excel Services JavaScript API)で操作することができるので、

JavaScriptでセルに値を書き込み → 値を読み込んでOffice用アプリ動作

といったことができるようになります。





<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.1.min.js"></script>
        <script src="http://excel.officeapps.live.com/x/_layouts/ExcelJs.ashx?v=1"></script>
        <script>
        var fileToken = "SD92A165759188B352!521/-7880906317294423214/";
        
        if (window.attachEvent) {
            window.attachEvent("onload", loadEwaOnPageLoad);
        } else {
            window.addEventListener("DOMContentLoaded", loadEwaOnPageLoad, false);
        }
        
        function loadEwaOnPageLoad() {
            var props = {
                uiOptions: {
                    showDownloadButton: false,
                    showParametersTaskPane: false,
                    selectedCell: "'Sheet1'!C1"
                },
                interactivityOptions: {
                    allowTypingAndFormulaEntry: true,
                    allowParameterModification: false,
                    allowSorting: false,
                    allowFiltering: false,
                    allowPivotTableInteractivity: false
                }
            };
            Ewa.EwaControl.loadEwaAsync(fileToken, "myExcelDiv", props, onEwaLoaded);
        }

        function onEwaLoaded(result) {
             ewa = Ewa.EwaControl.getInstances().getItem(0);
        }
        
        function setRangeValue(asyncResult) {
            if (asyncResult.getCode() != 0) {
                alert("Err:" + asyncResult.getDescription());
            }
        }
        
        $(function() {
            $("#txtInput").change(function() {
                //alert($(this).val());
                var ary = new Array();
                ary[0] = new Array();
                ary[0][0] = $(this).val();
                ewa.getActiveWorkbook().getActiveCell().setValuesAsync(ary,setRangeValue,null);
            });
        });
        </script>
    </head>
    <body>
            <input id="txtInput" type="text" value="" style="font-size:24pt;"><br><br>
            <div id="myExcelDiv" style="width: 500px; height: 500px"></div>
    </body>
</html>

上記コードではインプットボックスに入力した値をブック上のセルに書き込み、それに合わせてアプリが動作するようになっています。Office用アプリとExcel Services ECMAScriptの連携は工夫次第で色々遊べますので、興味がある方は是非お試しください。

ブックの埋め込み方法やExcel Services ECMAScriptの処理については当ブログのExcel Services ECMAScriptカテゴリーで紹介していますので、そちらをご参照ください。

[Office用アプリ]Google ドライブでアプリを公開する方法前のページ

ノートを削除するPowerPointマクロ次のページ

関連記事

  1. Office関連

    WordやExcelでミニ ツール バーを非表示(無効)にする。

    WordやExcel、PowerPointといったOffice製品で文…

  2. Office関連

    OneNoteのノート名を列挙するマクロ

    今回はOneNoteのノート名を列挙するマクロを紹介します。O…

  3. Office関連

    Computer Vision APIを使って画像から文字列を取得するVBAマクロ

    前々回の記事で、Fiddlerを使ってMicrosoft Cognit…

  4. Office関連

    代替テキストを削除するPowerPointマクロ

    PowerPointの図やSmartArt、グループやグラフといった視…

  5. Office関連

    VALUE DOMAINで管理しているドメインをOffice 365で使用する。

    Office 365をセットアップすると設定される初期ドメイン「onm…

  6. Office アドイン

    [Office用アプリ]カレンダーから日付を入力するコンテンツアプリ。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP