新たなセルにカーソルが移動した場合に発生します。
Eventオブジェクトには以下の子オブジェクトが付加されています。
型 |
名前 |
説明 |
Number |
row |
移動した行位置 |
Number |
col |
移動した列位置 |
通常、StartEditイベントのイベントハンドラでは、SetEditorメソッドによりセルの編集を準備するコードを記述します。セルの編集には、別に定義したTextBoxオブジェクトなどを利用して実現します。StartEditイベントと対になるStopEditイベントにより入力内容をスプレッドシートに反映させます。
例
Number edit_row;
Number edit_col;
Function OnStartEdit(e) {
var edit;
switch (e.col) {
case 0:
edit = frmSpreadEdit.ebText; /* 1列目の編集 */
break;
case 1:
edit = frmSpreadEdit.ebNumber; /* 2列目の編集 */
break;
case 2:
edit = frmSpreadEdit.ebDate; /* 3列目の編集 */
break;
default:
return;
}
edit_row = e.row; /* 編集を開始した行と列を記録 */
edit_col = e.col;
edit.Value= GetCell(r, c); /* 入力値をコピー */
SetEditor(edit); /* Spreadに貼り付け */
edit.Visible = $TRUE; /* 表示 */
edit.SetFocus(); /* 入力フォーカスセット */
}
Biz/Browserのイベントはイベントキューを経由するため、必ず、StartEditイベントあるいはStopEditイベントの子オブジェクトとして渡されるrow、colオブジェクトを使用して処理を行うようにしてください。OnStartEdit、OnStopEditイベントハンドラ内で、Value、ColumnPositionプロパティを使用してカーソル位置を取得するとイベントで通知される位置とは異なることがあります。
StartEditイベントはStopEditイベントと対になりますが、その発生順序の保証はありません。以下のようにイベントが発生する可能性があることに注意してください。
StartEdit (row=0, col=0)
StartEdit (row=1, col=0)
StopEdit (row=0, col=0)
StopEdit (row=1, col=0)