Noch besser wäre es, fügen Sie keinen Hinweis auf sie. Verwenden Sie stattdessen die späte Bindung. Das heißt, Sie Plain-Vanilla-Objektvariablen anstelle der RegExp Bibliothek Datentypen verwenden werden:
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.Regexp")
So brauchen Sie nicht über die Bibliothek-Version auf dem jeweiligen Computer installiert zu kümmern. Die Geschwindigkeitsdifferenz ist ziemlich vernachlässigbaren für einen Anruf zu ihm, aber wenn Sie es gehen regelmäßig zu verwenden, eine öffentliche Funktion wie folgt erstellen:
Public Function RegEx() As Object
Static objRegEx As Object
If objRegEx Is Nothing Then
Set objRegEx = CreateObject("VBScript.Regexp")
End If
Set RegEx = objRegEx
End Function
Dann haben Sie nicht überhaupt etwas zu tun - Verwenden Sie RegExp genauso wie eine Variable, die auf das Objekt der obersten Ebene verweist. Dies wird automatisch initialisiert, wenn Sie es das erste Mal benutzen und bleibt dann bestehen, bis Sie die Anwendung schließen.
Wenn Sie besorgt sind über unten vor dem Schließen nach oben Reinigung, können Sie dies tun:
Public Function RegEx(Optional bolClose As Boolean = False) As Object
Static objRegEx As Object
If bolClose Then
Set objRegEx = Nothing
Exit Function
End If
If objRegEx Is Nothing Then
Set objRegEx = CreateObject("VBScript.Regexp")
End If
Set RegEx = objRegEx
End Function
Und in Ihrer App Shutdown-Routine nennen es so:
Call RegEx(True)
Und dein Onkel Bob!
v. Elegant. Nett. Ich habe gesehen, beraten, spätes Binden als den besten Ansatz für den Zugriff immer wieder und weniger Kopfschmerzen. ta! – bizl