VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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  


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -