Office関連

[Excel Services ECMAScript]アクティブセルが変更されたときのイベントを利用する。

埋め込んだExcelワークブックの、アクティブセルが変更されたときのイベントに関するコードです。
アクティブセルを変更すると、そのセルの情報をalertで表示します。

[Excel Services ECMAScript]選択範囲が変更されたときのイベントを利用する。」で紹介している「activeSelectionChanged」イベントと非常によく似ていますが細かい動作が異なります。
Ewa.EwaControl.add_activeCellChanged(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_activeCellChanged(cellChanged);
    }
    
    function cellChanged(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_activeCellChanged(function)
http://msdn.microsoft.com/en-us/library/ee589067.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

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

[Excel Services ECMAScript]セルにデータを入力する。次のページ

関連記事

  1. Office関連

    [Office VBA]ADOでSharePointリストに接続する方法

    先日Twitterで @blacklist_ryu さんが下記ツイート…

  2. Office アドイン

    【2019年6月版】Excel カスタム関数(Excel Custom functions)の紹介

    1年半ほど前、Excel カスタム関数について記事を書きました。…

  3. Office関連

    名前付きセル(範囲)にコメントを付けるVBAマクロ

    Excelでマニュアルを作成する際、名前付きセル範囲を明記する必要があ…

  4. Office関連

    インストールされたフォントの一覧を取得するVBAマクロ

    最近自分の周りでPowerPoint VBAが流行っているようだったの…

  5. Office関連

    ランダムな文字列を生成するVBAマクロ

    文字数を指定して0-9,A-Zまでのランダムな文字列を生成するマクロで…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP