[VBA]電話番号、FAX番号の表記ゆれ・桁数チェックしよう

[VBA]電話番号、FAX番号の表記ゆれ・桁数チェックしよう

データ入力を早くするにはタイピングやコピペの早さは欠かせませんが、入力ミスや全角半角などの表記ゆれに気を配らなければなりません。
それを1つ1つ手作業で直していては時間がいくらあっても足りません。

今回はそんな電話番号、FAX番号の表記ゆれ・桁数チェックをVBAで一括処理するコードをシェアします。

以前『名刺入力、会社情報入力を早くするコツ』と一緒に御覧ください。

 

 

ハイフンや()を全角を半角に変換

ほとんどの企業がデータに検索をかけた際に該当するように、全角半角を統一すると考えられます。
そして、ハイフンの表記も「ー」、「―」、「-」というように種類があります。
記号などはおおむね半角にするようにするはずなので、ハイフンや()を半角に統一します。

例)
(03)****ー**** → (03)****-****
(03)****―**** → (03)****-****

—————————————————-
Sub hankaku()

Dim i As Integer
Dim n As Integer

n = Cells(Rows.Count, “A”).End(xlUp).Row
    For i = 2 To n
       Cells(i, “A”) = StrConv(Cells(i, “A”), vbNarrow)
    Next i

    With Columns(“A”)
        .Value = Application.Substitute(.Cells, “―”, “-“)
        .Value = Application.Substitute(.Cells, “ー”, “-“)
        .Value = Application.Substitute(.Cells, “)”, “)”)
        .Value = Application.Substitute(.Cells, “(”, “(“)
    End With
End Sub
—————————————————-
※”A”部分はご自分で使用する列に変更してください。

 

 

 

()付の電話番号、FAX番号を - のみの表記に置換

例)
(03)****-**** → 03-****-****
03(****)**** → 03-****-****

例のように電話番号やFAX番号の表記は様々ですが、リストとして使用する場合は統一したいものです。
そこでコピペしてきたものでも以下のコードを使えば一括で変換できます。

—————————————————-
Sub hyphen()

Dim i As Integer
Dim n As Integer
Dim sText As String

‘TELの()を-に置換
n = Cells(Rows.Count, “A”).End(xlUp).Row
    For i = 2 To n
        sText = Cells(i, “A”).Text
            If sText Like “(0#)####-####” Or sText Like “(0##)###-####” Or _
sText Like “(0###)##-####” Then

                With Columns(“A”)
                    .Value = Application.Substitute(.Cells, “(“, “”)
                    .Value = Application.Substitute(.Cells, “)”, “-“)
                End With

            ElseIf sText Like “##(####)####” Or sText Like “###(###)####” Then
                With Columns(“A”)
                    .Value = Application.Substitute(.Cells, “(“, “-“)
                    .Value = Application.Substitute(.Cells, “)”, “-“)
                End With
            Else
            End If
    Next i
End Sub
—————————————————-
※”A”部分はご自分で使用する列に変更してください。

 

 

 

電話番号、FAX番号の桁数チェック

電話番号やFAX番号はある程度決まった桁数があるはずです。
それにハイフンが入る場所によってバリエーションがありますので、そのパターンをいくつか下記で指定し、マッチしないデータに関しては色づけしておきまとめて目視していくようにします。

—————————————————-
Sub number_check()

Dim sText As String
Dim n As Integer

‘番号の-・桁チェック
n = Cells(Rows.Count, “A”).End(xlUp).Row
    For i = 2 To n
        sText = Cells(i, “A”).Text
        If sText Like “##-####-####” Or sText Like “###-###-####” Or sText Like “###-####-####” _
Or sText Like “####-##-####” Or sText Like “####-###-###” Or sText Like “” Then
            Cells(i, “A”).ClearFormats
        Else
            ‘桁数がマッチしない場合はセルに色付け
            Cells(i, “A”).Interior.Color = RGB(204, 255, 204)
        End If
    Next i
End Sub
—————————————————-
※”A”部分はご自分で使用する列に変更してください。

 

関連記事→簡単VBA!マクロで次データの前まで下へコピー
     初心者の正規表現①

 

電話番号、FAX番号、携帯番号と種類がある際は、ご紹介したコードを種類分コピーして列部分を変更してください。
これで、番号系に関してはおおむね確認をカバーできているはずです。

VBAを使えるようにする基本方法はこちらを参照してみてください。

少しでもあなたの入力作業が楽に早くなればうれしく思います。

 

 

Amazon

入門者のExcel VBA 初めての人にベストな学び方 (ブルーバックス)

楽天

入門者のExcel VBA (ブルーバックス) [ 立山 秀利 ]