Office関連

[Excel Services ECMAScript]選択範囲が変更されたときのイベントを利用する。

埋め込んだExcelワークブックの、選択範囲が変更されたときのイベントに関するコードです。
選択範囲を変更すると、新しい選択範囲の情報をalertで表示します。

[Excel Services ECMAScript]アクティブセルが変更されたときのイベントを利用する。」で紹介している「activeCellChanged」イベントと非常によく似ていますが細かい動作が異なります。
Ewa.EwaControl.add_activeSelectionChanged(function)」によると、その違いは下記の通りです。

The activeCellChanged event is distinct from the activeSelectionChanged event. The active cell is the cell that will receive input from the keyboard. The active selection is the range of cells that is currently selected. The active cell can change while the active range remains the same.

複数のセルを選択した状態でタブキーを押して動作を確認してみると、その違いが分かるでしょう。

<script type="text/javascript" src="http://r.office.microsoft.com/r/rlidExcelWLJS?v=1&kip=1"></script>
<script type="text/javascript">
    var fileToken = "SD92A165759188B352!265/-7880906317294423214/";

    if (window.attachEvent) {
        window.attachEvent("onload", loadEwaOnPageLoad);
    } else {
        window.addEventListener("DOMContentLoaded", loadEwaOnPageLoad, false);
    }

    function loadEwaOnPageLoad() {
        var props = {
            uiOptions: {
                showGridlines: false,
                showRowColumnHeaders: false,
                selectedCell: "'Sheet1'!A1"
            },
            interactivityOptions: { }
        };

        Ewa.EwaControl.loadEwaAsync(fileToken, "myExcelDiv", props, onEwaLoaded);
    }

    function onEwaLoaded(result) {
        ewa = Ewa.EwaControl.getInstances().getItem(0);
        ewa.add_activeSelectionChanged(selectionChanged);
    }
    
    function selectionChanged(rangeArgs) {
        var n = "シート名:" + rangeArgs.getRange().getSheet().getName() + "\n";
        n = n + "位置:" + rangeArgs.getRange().getRow() + " , " +  rangeArgs.getRange().getColumn() + "\n";
        n = n + "値:" + rangeArgs.getFormattedValues();
        alert(n);
    }
</script>
<div id="myExcelDiv" style="width: 400px; height: 150px"></div>


・Ewa.EwaControl.add_activeSelectionChanged(function)
http://msdn.microsoft.com/en-us/library/ee589017.aspx
・Ewa.RangeEventArgs.getRange()
http://msdn.microsoft.com/en-us/library/ee660134.aspx
・Ewa.Range.getSheet()
http://msdn.microsoft.com/en-us/library/ee660133.aspx
・Ewa.Range.getRow()
http://msdn.microsoft.com/en-us/library/ee660091.aspx
・Ewa.Range.getColumn()
http://msdn.microsoft.com/en-us/library/ee660063.aspx
・Ewa.RangeEventArgs.getFormattedValues()
http://msdn.microsoft.com/en-us/library/ee660060.aspx

関連記事

  1. Office関連

    Google Docs APIを使ってGoogle ドキュメントを操作するVBAマクロ

    前回の記事で新しく追加されたGoogle Docs APIを紹介しまし…

  2. Office関連

    [Excel Services ECMAScript]jPrintAreaで埋め込んだブック部分のみ…

    jQuery + jPrintAreaを利用して、埋め込んだExcel…

  3. Office関連

    [PowerPoint]シェイプの名前を指定して「変形」ができるようになりました。

    PowerPoint 2016で新しい画面切り替え効果「変形」が追加さ…

  4. Office関連

    [Office 365 Solo]テクニカル サポートってどんなもの?

    前々回の記事に引き続いて、Office 365 Soloの疑問点第三弾…

  5. Office関連

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

    新機能を把握するためにはヘルプを見るのが一番早い、というわけでOffi…

  6. Office関連

    Office365APIEditorでMicrosoft Graph APIを手軽に呼び出し!

    下記Tech Communityの記事で、Microsoftのエンジニ…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP