変数の省略

例えば、こんなサブプロシージャがあったとする。

Sub test_1()
    Dim myReg As RegExp
    Set myReg = New RegExp
        myReg.Pattern = "[\w]+"
        Debug.Print .test("aaa")
        Debug.Print .test("あああ")
End Sub

変数を宣言し、初期化し、その後の処理を行う。よくあるパターンだ。

ところで先程試してみたところ、理屈は良く判らないが、この書き方でも
良いらしい。

Sub test_2()
    With New RegExp
        .Pattern = "[\w]+"
        Debug.Print .test("aaa")
        Debug.Print .test("あああ")
    End With
End Sub

この書き方だと、今回行数は同じだが、変数(myReg)が不要となっている。
結果も、ちゃんと出てくれた。
f:id:Infoment:20191019225141p:plain

どんな場面で有効なのか、まだ思いつかないが、折角なので覚えておくとしよう。

参考まで。