

VBAでは、参照設定する方法と、しない(遅延バインディング)で CreateObject
や As
Objectを使う方法があります。
🔷 VBScript.RegExp とは?
VBAでも使える「正規表現」エンジン。
文字列検索・置換・抽出などを強力にこなす、隠れた名COMオブジェクト。

例:VBScript.RegExpを使った場合
▼参照設定(早期バインディング)
参照設定 → 「Microsoft VBScript Regular Expressions 5.5」 を追加します。

Dim regex As VBScript_RegExp_55.RegExp ' ← 明示的な型指定が可能に!
Dim matches As MatchCollection
Dim match As match
Set regex = New VBScript_RegExp_55.RegExp
regex.Pattern = "\d{3}-\d{4}" ' 郵便番号みたいなパターン
regex.Global = True
regex.IgnoreCase = True
Set matches = regex.Execute("〒123-4567 Tokyo 03-1234-5678 999-8888")
For Each match In matches
Debug.Print match.Value
Next
▼ 非参照設定(遅延バインディング)
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\d{3}-\d{4}" ' 郵便番号みたいなパターン
regex.Global = True
regex.IgnoreCase = True
Dim matches As Object
Set matches = regex.Execute("〒123-4567 Tokyo 03-1234-5678 999-8888")
Dim m As Object
For Each m In matches
Debug.Print m.Value
Next
◆参照設定あり vs. 非参照設定(CreateObject)
項目 | 参照設定あり | 非参照設定(CreateObject) |
---|---|---|
補完(IntelliSense) | あり ✅ | なし ❌ |
実行速度 | 速い ✅ | やや遅い ❌ |
配布 | 注意必要 ❌ | 安心 ✅(参照設定の誘導なくとも、コードのみ配布できる) |
安定性 | 高い ✅ | やや不安定(バージョン依存)❌ |
「補完」とはVBA記載中に、ピリオドを押すとプロパティやメソッドが選択できる機能のことです。これは、便利ですよね。





コメントを残す