| 
    
     |  | いちおう、このように変更すればよいでしょう。 
 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 に飛ばす" というコードに書き直します。
 そこはあなたが努力して、やってみて下さい。
 
 |  |