どなたかわかる方ご教授お願いします。
最大表示領域が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