前回は、Excel VBAで正規表現を利用してデータをチェックする方法について、郵便番号を例に説明しました。
Excel VBA 正規表現を活用したデータチェック①
この記事では、正規表現を利用して電話番号をチェックする方法について説明します。
電話番号のチェック例
郵便番号と同様、電話番号の形式も正規表現を利用してチェックすることができます。
電話番号のパターン
電話番号のパターンは以下とします。
・「市外局番(1~5桁)+ 市内局番(1~4桁)+ 加入者番号(4桁)」の形式
・市内局番を区切るのは「()」または「-」
電話番号(C列)の形式が正しいか、チェックします。
プログラム例
Sub Sample02()
Dim objCheck As Object '電話番号をチェックするための変数
Dim i As Long '繰り返し処理用の変数
'電話番号チェック用オブジェクト作成
Set objCheck = CreateObject("VBScript.RegExp")
'電話番号のパターン
objCheck.Pattern = "^[0-9]{2,5}[-(][0-9]{1,4}[-)][0-9]{4}"
'電話番号列をチェックする
'A1列の行数を数えて、2行目からA列の行数分繰り返す
'電話番号列は空のセルがあるため、A列で判定
For i = 2 To Range("A1").CurrentRegion.Rows.Count
'電話番号のパターンではない場合
If objCheck.Test(Cells(i, 3).Value) = False Then
'対象の電話番号セルの背景色を赤にする。
Cells(i, 3).Interior.ColorIndex = 3
End If
Next
End Sub
電話番号のパターンの説明
パターン | 説明 |
^ | 先頭 |
[0-9] | 0から9までの数字 |
{2,5} | 2桁から5桁 |
[-(] | -または( |
[0-9] | 0から9までの数字 |
{1,4} | 1桁から4桁 |
[-)] | -または) |
[0-9] | 0から9までの数字 |
{4} | 4桁 |
■実行結果
パターンに合わない場合は、セルに赤色を付けています。
まとめ
Excel VBAで正規表現を利用してデータをチェックする方法について、電話番号を例に説明しました。