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

[Excel Services ECMAScript]アクティブなシート名を取得する。前のページ

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

関連記事

  1. Office関連

    Wordマクロで文字数を取得する方法をまとめてみました。

    「蛍光ペンでマークした部分の文字数をカウントするWordマクロ」で蛍光…

  2. Office関連

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

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

  3. Office関連

    ExcelとPowerPointに自動保存機能が追加されました。

    Excel 2016を使っていて、ふと気が付いたのが画面左上にある「自…

  4. Office関連

    [Office]アイコンの検索機能が超便利!

    ※ 下記情報はInsider版のOfficeを元にしています。バージョ…

  5. Office関連

    外部アプリケーションのコンボボックスの内容を取得するVBAマクロのサンプル

    Q&Aサイトに下記質問がありました。(この質問も何となく似たような…

  6. Office関連

    7-Zipで圧縮・解凍を行うVBAマクロ

    「7-Zip VBA」といったキーワード検索でのアクセスがありました。…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP