• ベストアンサー

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

エクセルのセルに入力された値がUnicodeで****から****までの範囲内のみの文字で記述されているかのチェックをしたいのですが、 例:B3には電話番号を入力したいので半角数字と()のみで構成されているかをチェックする。 VBAでどのように記述すればよいのでしょうか? もう一つ、 セルB3に文字を入力し終えた時または、B3にあるカーソルを他のセルに動かした時に VBAが走る…と言う記述方法はあるのでしょうか? ボタンを用意し、入力後[CHECK]を押すとVBAが動くと言うのは出来るのですが… 以上よろしくお願いいたします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

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
質問者

お礼

ありがとうございます。助かりました。

関連するQ&A