コードを Excel Online でテストします。あなたが報告している問題は再現しません。
「API Tutorial for Office」アプリでコードを確認できます。Onedrive で新しい Excel ドキュメントを作成し、[挿入] タブの [Office 用アプリ] にこのアプリを挿入するだけです。
任意の JavaScript ソース コードを貼り付けて実行できます。
これが私の再現ステップです:
まず、バインディングを作成します。
Office.context.document.bindings.addFromSelectionAsync("table", { id: "orderBinding" }, function (asyncResult) {
if (asyncResult.status == "failed") {
showMessage("Action failed with error: " + asyncResult.error.message);
}
else {
showMessage("Added new binding with type: " + asyncResult.value.type + " and id: " + asyncResult.value.id);
}
});
次に、イベント ハンドラーをバインディングに割り当てます。
Microsoft.Office.WebExtension.select("bindings#orderBinding", onBindingNotFound)
.addHandlerAsync(
Microsoft.Office.WebExtension.EventType.BindingDataChanged,
function (eventArgs){
showMessage('Data changed in excel');
}
);
function onBindingNotFound(){
showMessage("The binding object was not found. "+
"Please return to previous step to create the binding");
}
セルを変更すると、イベント ハンドラーが正しく機能することを確認します。