ユーザーがブック内で選択する範囲またはセルにイベントハンドラを追加したいとします。ユーザーがまたはセルまたは範囲を選択すると、いくつかのアクションを体系的に行う必要があります。選択した範囲にイベントハンドラを追加する
私はthis referenceを見ていますが、コードをアドイン全体に統合する場所はわかりません。
例えば、私のHome.html
で、私はここ
<div id="content-main">
<div class = "padding" id="message"></div>
<div class="padding">
<button class="ms-Button" id="button">Click me!</button>
</div>
</div>
を持っているがHome.js
です:
(function() {
"use strict";
Office.initialize = function(reason) {
$(document).ready(function() {
app.initialize();
$('#button').click(activateEventHandler);
});
};
function onBindingSelectionChanged(eventArgs) {
write(eventArgs.binding.id + " has been selected.");
}
function write(message) {
document.getElementById('message').innerText += message;
}
function activateEventHandler() {
Excel.run(function(ctx) {
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.addHandlerAsync(Office.EventType.BindingSelectionChanged, onBindingSelectionChanged);
return ctx.sync()
}).then(function() {
console.log("done");
}).catch(function(error) {
...
}
});
}
})();
私はボタンがリスナーをアクティブに期待します。次に、ユーザーが別のセルまたは範囲を選択するたびに、メッセージがタスクペインに体系的に追加されます。ただし、上記のコードではError: TypeError: selectedRange.addHandlerAsync is not a function
という行がselectedRange.addHandlerAsync(...
というエラーになります。
実際、私はこのコードをそのように構成するべきかどうかはわかりません...誰かが自分の仕事を達成するためにコードを修正する方法を知っていますか?