SPREADのPositionプロパティがうまくいきません


りょうこ  2004-04-09 14:39:28  No: 82975  IP: [192.*.*.*]

どなたかわかる方ご教授お願いします。

最大表示領域が4行で1行おきにセルを
ロックしているスプレッドがあるとします。
アクティブセルが3行目で↓キー押下時、4行目を飛び越え
5行目にアクティブセルが移動まではいいのですが、この時点で
TopRow値を3にしたいのです。
LeaveCellイベント内でPositionプロパティ等を使って操作しているのですが
どうしてもTopRow値が2でもう1行スクロールさせることができません。
わかりづらい説明で申し訳ないのですが、どなたかアドバイスをお願いします。

         ________________
1行目  |    |              |        |
2行目  |№1|LOCK      |LOCK|
3行目  |    |アクティブセル|        |
4行目  |№2|LOCK      |LOCK|↓キー押下で
         ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
         ________________
2行目  |№1|LOCK      |LOCK|
3行目  |    |              |        |
4行目  |№2|LOCK      |LOCK|
5行目  |    |アクティブセル|        |となるのを、、、
         ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
         ________________
3行目  |    |              |        |
4行目  |№2|LOCK      |LOCK|
5行目  |    |アクティブセル|        |
6行目  |№3|LOCK      |LOCK|となるようにしたい
         ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

このサンプルは↓キー押下時の処理です。
>Private Sub Spread1_LeaveCell(ByVal Col As Long, ByVal Row As Long, ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)
>
>    Dim iCurRow AS INTEGER
>
>    ''アクティブセルが表示領域外に移動した時
>    If Row <> NewRow Then
>        iCurRow = NewRow - Spread1.TopRow
>        If iCurRow >= 4 Then
>            
>            Spread1.TopRow = NewRow - 2
>            Spread1.Col = 2: Spread.Row = NewRow - 2
>            Spread1.Position = 0
>            Spread1.Action = 1
>        End If
>    End If
>
>END SUB

編集 削除