[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 (ブルーバックス) [ 立山 秀利 ]
ディスカッション
コメント一覧
まだ、コメントがありません