2007年10月24日
VB(A)で正規表現が使えた!

Visual Basic 6(VB6)やExcel、AccessのマクロであるVisual Basic for Application(VBA)を使用していて時々困るのが文字列などの検索です。
VB(A)にはある程度の文字列検索用の関数は用意されているものの、どうしてもこれだけでは役不足ということが時々あります。
他言語であるPHPやPerlなどには文字列検索用に「正規表現」と言う機能があるのですが、VB(A)にはありません・・・
と!
完全にそう思い込んでいたのですが、先日初めて知りました!VB(A)で正規表現が使用できることが!長くVB(A)に関わってきましたが、全然知りませんでした。VB(A)の世界ではごく当たり前のことかもしれませんが、私の様に知らない人は下記を参照ください。
VB(A)で正規表現を使用するには[ツール]-[参照設定]で「参照設定」のウィンドを表示します。この「参照可能なライブラリ ファイル」の中から
実際に標準モジュールに下記プログラムを書いてみて
と表示されました。
もちろん、これだけでは全然不足していますが、他にもいろいろと使用できることがあります。詳しくは下記のリンクを参照ください。
まだ、私も先日知ったばかりなので詳しいことはまだわかっていませんが、使い方次第では結構便利なツールになりそうです。
Clinick's Clinic on Scripting: 正規表現による Visual Basic Scripting Edition (VBScript) の機能強化
Microsoft Visual Basic 6.0 で正規表現を使用する方法
CodeZine:VBAで正規表現を使う(RegExp)
便利便利
常に手元に置いておきたいリファレンス
Microsoft VBScript Regular Expressions 5.5を探して、チェックを入れます。これだけでVB(A)で正規表現が使用できます。

「参照設定」で「Microsoft VBScript Regular Expressions 5.5」をON
実際に標準モジュールに下記プログラムを書いてみて
Public Function testSeiki()イミディエントで
Dim re As RegExp
Set re = New RegExp
re.Pattern = "ABC"
re.Global = True
MsgBox re.Replace("ABCDEF ABCDEF ABCDEF", "abc")
End Function
? testSeikiと実行してみた結果

もちろん、これだけでは全然不足していますが、他にもいろいろと使用できることがあります。詳しくは下記のリンクを参照ください。
まだ、私も先日知ったばかりなので詳しいことはまだわかっていませんが、使い方次第では結構便利なツールになりそうです。
Clinick's Clinic on Scripting: 正規表現による Visual Basic Scripting Edition (VBScript) の機能強化
Microsoft Visual Basic 6.0 で正規表現を使用する方法
CodeZine:VBAで正規表現を使う(RegExp)
正規表現ハンドブック (Technical Handbook Series)
posted with amazlet on 07.10.24
鹿島 和郎 吉村 晋一 木村 浩一
ソフトバンククリエイティブ (2005/06/30)
売り上げランキング: 9570
ソフトバンククリエイティブ (2005/06/30)
売り上げランキング: 9570
おすすめ度の平均: 



Category is MS Office.
<%PingExcerpt%>
<%PingBlogName%> at <%PingDateTime%>