OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルで入力文字のチェック

  • 困ってます
  • 質問No.209797
  • 閲覧数150
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

エクセルのセルに入力された値がUnicodeで****から****までの範囲内のみの文字で記述されているかのチェックをしたいのですが、
例:B3には電話番号を入力したいので半角数字と()のみで構成されているかをチェックする。

VBAでどのように記述すればよいのでしょうか?

もう一つ、
セルB3に文字を入力し終えた時または、B3にあるカーソルを他のセルに動かした時に
VBAが走る…と言う記述方法はあるのでしょうか?

ボタンを用意し、入力後[CHECK]を押すとVBAが動くと言うのは出来るのですが…

以上よろしくお願いいたします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

B3に変更があったら入力された値を調べています。Worksheet_Changeを使っています。
B3があるシートのコードウインドウに貼り付けます。

ご参考に。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Dim dt As String  '入力データ
  Dim p As Integer  '文字の位置カウンタ

  '変更セルが単一の場合
  If Target.Count = 1 Then
    '変更セルがB3の場合
    If Target.Address = "$B$3" Then
      dt = Target.Text  'B3に入力した値
      '文字を調べる
      For p = 1 To Len(dt)
        If InStr("1234567890()", Mid(dt, p, 1)) = 0 Then
          '指定文字以外があったらメッセージを出す例
          MsgBox "不正な文字『 " & Mid(dt, p, 1) & " 』があります。"
          Exit For
        End If
      Next
    End If
  End If
End Sub
お礼コメント
noname#6248

ありがとうございます。助かりました。
投稿日時 - 2002-02-20 18:50:43
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ