重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBAにおける正規表現について教えてください!

例: 52-1234567_対象先 ➡︎ パターン1
例: 52-1234567 対象先 ➡︎ パターン2

数字2個、半角ハイフン、数字7個、アンダーバー、
文字列 であれば、call マクロにてマクロ実行


数字2個、半角ハイフン、数字7個、空白(半角1〜4個、全角空白1〜4個)、文字列 の場合は、
パターン1となるように、リネイム

上記のように実施したいのですが、どなたかお力を貸して頂けませんか?

A 回答 (1件)

こんにちは。



何かちょっと質問の意図がわかりにくいのですが、パターン2だったら、パターン1にするということでしょうか。違いは半角アンダーバーでしょうから、空白に半角アンダーバーを置換すればよいのではないでしょうか。

Option Compare Text   '全角・半角の文字や空白を指す
Sub Test1()
 Dim c As Range
 For Each c In Range("A1", Cells(Rows.Count, 1).End(xlUp))
  If c.Value Like "##-#######" & Space(1) & "*?*" Then
   c.Value = Replace(c.Value, Space(1), "_", , 1)
   c.Value = Replace(c.Value, Space(1), "")  '余計な空白は取る
  End If
 Next
End Sub

正規表現にする意味がよく分かりません。例えば、文章の中から、決まったパターンを抜き出しするとかする場合なら、正規表現でないと難しいです。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2019/01/31 21:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!