excel VBAの実験.テキストファイルの正規表現による置換処理

excel VBAの実験

大量のテキストファイルは、自動化したい。

wordにて作成したdocファイルをwordでhtm形式に保存して出力、
出力したしたVBAでファイルを読み込み、
HTMLタグを正規表現による置換によって、整形するという一連の処理が
VBAで自動化できなかと思いちょっと実験。

以下、サンプルプログラム

[vb] Sub テキストファイルとして読み込み正規表現による置換後別のファイルに書き込む()
‘ファイルの読み込み
Dim FSO As Object, buf As String, buf2 As String
Set FSO = CreateObject("Scripting.FileSystemObject")
”C:\Work\Sample.txtの全ての文字を読み込んで表示します
With FSO.GetFile("C:\Ruby191\vba_RE.txt").OpenAsTextStream
buf = .ReadAll
.Close
End With
‘Set FSO = Nothing

‘正規表現で置換
buf2 = buf
buf2 = ReplaceRegExpr(buf2, "<html>\r\n<body>", "<xxxxxxxxxx>")
‘buf2 = ReplaceRegExpr(buf2, "\r\n\r\n", "vbCrLf")
buf2 = Replace(buf2, "</section><section>", "</section>" & vbCrLf & "<section>")
‘buf2 = Replace(buf2, "<section>", "xx")

‘既存ファイルに上書き
With FSO.GetFile("C:\Ruby191\vba_RE_out.txt").OpenAsTextStream(2)
.Write buf2
.Close
End With
‘Set FSO = Nothing

‘ファイルの新規作成と書き込み
With FSO.CreateTextFile("C:\Ruby191\Sample.txt")
.Write buf2
.Close
End With

Set FSO = Nothing
End Sub

‘正規置換を行うモジュール、出力=ReplaceRegExpr(入力、検索文字列、置換文字列)
Function ReplaceRegExpr(InputStr As String, RegExpr As String, ReplaceStr As String) As String
Dim re As RegExp
Set re = New RegExp
re.Pattern = RegExpr
re.Global = True
ReplaceRegExpr = re.Replace(InputStr, ReplaceStr)
End Function
</pre>

次の2つを使用するには、エクセルVBAのツール>参照設定からVBA Projectを追加する必要がるので注意。
<ul>
<li>FileSystemObject</li>
<li>RegExp</li>
</ul>
[/vb]