正規表現

Posted by muchag | Excel VBA |
初回投稿:2015-09-09 (水) 13:00:25 | 最終更新:2018-09-17 (月) 10:40:28

Excel VBA で 正規表現 を使う時がきた。

【環境】
Excel:2010
準備
参照設定

[ツール]-[参照設定]
Microsoft VBScript Regular Expressions 5.5
にチェック。

これで、下記のように宣言できる。


Dim objRE As New RegExp

参照設定をしない場合は、下記のごとく。


Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
置換
HTML タグ除去

Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "<[^>]*>"
objRE.Global = True

Dim strHoge as String
strHoge = "

hoge

" strHoge = objRE.Replace(strHoge, vbNullString)
抽出

[123]abc[789]xyz
において、[] で括られたもの以外
つまり、abcxyz を抽出する場合。


Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "\[.*?\]"
objRE.Global = True

Dim strHoge as String
strHoge = "[123]abc[789]xyz"
strHoge = objRE.Replace(strHoge, vbNullString)

書いてみて思った。
やっていることは、HTML タグ除去と同じだw
考えてみれば当然なんだけど
せっかくなので残しておく。

抽出

[123]abc[789]xyz
ここから、123, 789 を抽出したい場合。


Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "\[(.*?)\]"
objRE.Global = True

Dim strHoge as String
strHoge = "[123]abc[789]xyz"
strHoge = objRE.execute(strHoge)

If strHoge.Count > 0 Then
	Dim index As Integer
	For index = 0 To strHoge.Count - 1
		MsgBox strHoge(index).SubMatches(0)
	Next index
End If
参考サイト

マイナビニュース > パソコン:正規表現を用いてHTTPタグを除去するVBAを記述する

Posted by muchag | Excel VBA |
初回投稿:2015-09-09 (水) 13:00:25 | 最終更新:2018-09-17 (月) 10:40:28

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment