投稿日 | : 2004/11/18(Thu) 14:34 |
投稿者 | : ゆ |
Eメール | : |
URL | : |
タイトル | : Re: スプレッドで特定の行のみフォーカスを許さない方法 |
Q&Aより 抜粋です
Question:
セルに入力された値を判別し、それが無効な場合にセルの移動を禁止する方法を教えてください。
Answer:
セルの移動を禁止する場合は、LeaveCellイベントの Cancel引数を使います。
次のコードは、入力された文字列が時刻として有効かどうかを判別し、無効な場合はセルの移動を禁止します。
Private Sub vaSpread1_LeaveCell(ByVal Col As Long, ByVal Row As Long, ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)
Dim datCurrentCell As Date
With vaSpread1
.Col = Col
.Row = Row
If .CellType = SS_CELL_TYPE_PIC Then
’未入力の場合はデフォルトの値を入れます
If .Text = "" Then .Text = .TypePicDefaultText
On Error Resume Next
datCurrentCell = Cdate(.Text)
’時刻として無効な入力の場合はセルの移動を禁止します
If Err Then Cancel = True
End If
End With
End Sub