VBA:文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」利用
VBAの処理でユーザが入力した値から特定の値を変換したい、全角と半角を変換したいなどが出てくると思います。その場合「Replace」を使うことで、以下のように変換や削除ができます。
※このオブジェクトを利用するには事前の準備が必要です。設定されていない可能性もあるので、ページの一番下の関連記事にある「事前準備(参照設定の設定)」を事前に確認してください。
1.数字を変換・削除する方法
以下を実行すると、半角数字(0-9)を削除した値がメッセージボックスに表示されます。
これは基本的なものですが、応用することで様々な場面で使えると思います。
1 2 3 4 5 6 7 8 9 10 11 |
'文字列の中にある数字を変換する場合' Sub 動作チェック1() Dim re As New RegExp re.pattern = "\d" '「\d」は半角数字(0-9)。[0-9]と同じ' re.Global = True '0-9を「#」に変換し、それ以外はそのまま表示' MsgBox re.Replace("abc123あいう4567ABC890", "#") '「#」を消すと、削除になります。' '→「abc###あいう####ABC###」と表示されます' End Sub |
2.全角半角アルファベットを変換・削除する方法
以下を実行すると、文字列の中にある全角半角のアルファベットを変換した値がメッセージボックスに表示されます。
1 2 3 4 5 6 7 8 9 10 11 |
'文字列の中にある全角半角のアルファベットだけを変換する場合' Sub 動作チェック2() Dim re As New RegExp re.pattern = "[A-ZA-Z]" '全角半角のアルファベット' re.Global = True '全角半角のアルファベットを「#」に変換し、それ以外はそのまま表示' MsgBox re.Replace("abc123あいう4567ABC890DEF123", "#") '→「abc123あいう4567###890###123」と表示されます' End Sub |
◆関連記事
VBA:文字列の正規表現「RegExpオブジェクト」利用の事前準備
【VBA】文字列の正規表現「RegExpオブジェクト」利用の事前準備。参照設定の「Microsoft VBScript Regular Expressions 5.5」の設定方法
VBA:文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用
【VBA】文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用。
VBA:文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」利用
【VBA】文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」。指定した範囲の数字・文字をまとめて変換・削除ができます。