| 
    
     |  | どうもありがとうございました。 
 自社システムに取り込むのに、数字と”-”以外が入っていなければ
 (少々変な電話番号であっても)エラーは発生しないので、ぜひ使わせていただきます。
 
 とっても助かりました!!
 
 ▼Kein さん:
 >いちおう、このように変更すればよいでしょう。
 >
 >Sub Get_TelNumber()
 >  Dim TelNum As String
 >  Dim x As Integer, y As Integer
 >
 >  Do
 >   TelNum = InputBox("電話番号を入力して下さい")
 >   If TelNum = "" Then Exit Sub
 >   If Not IsNumeric(Right(TelNum, 4)) Then GoTo NLine
 >   x = InStr(1, TelNum, "-")
 >   y = InStrRev(TelNum, "-", -1)
 >   If x = 0 Or y = 0 Or x = y Then GoTo NLine
 >   If Not IsNumeric(Left(TelNum, x - 1)) Then
 >     GoTo NLine
 >   ElseIf Not IsNumeric(Mid(TelNum, x + 1, y - 1 - x)) Then
 >     GoTo NLine
 >   Else
 >     Exit Do
 >   End If
 >NLine:
 >   MsgBox "入力した値は電話番号として認識できません", 48
 >  Loop
 >  MsgBox TelNum
 >End Sub
 >
 >ただし、123456-78910-3333 というような値も電話番号として認識してしまいます。
 >これを防ぐには
 >>If x = 0 Or y = 0 Or x = y Then GoTo NLine
 >を、Select Case 構文に変更して、"x や y が特定の位置範囲にあったときのみ
 >処理を進める。それ以外は NLine に飛ばす" というコードに書き直します。
 >そこはあなたが努力して、やってみて下さい。
 
 |  |