vb2clr
1.0.0
Die Hilfsklasse CLRHost
für Visual Basic for Applications (VBA) 7.0 bietet Zugriff auf CLR-Assemblys und -Klassen (.NET Framework).
Um .NET (ehemals .NET Core) zu verwenden, sollten Sie die Verwendung von vb2net in Betracht ziehen.
Visual Basic for Application 7.0 (in Microsoft Office 2010 oder höher enthalten)
LongPtr
in Long
um und entfernen Sie alle PtrSafe
Bezeichner. CLRHost
-Klasse CLRHost
Instanz freigeben oder Terminate
-Methode aufrufen, wenn Sie mit der Verwendung von CLR fertig sind.True
an den TerminateOnExit
Parameter von CLRHost.Initialize
übergeben, dürfen Sie den Debugger nicht stoppen, wenn Sie die Anwendung unterbrechen oder anhalten.ExitHandler
-Modul kann nicht ausgeführt werden, wenn er während der Pause angehalten wird, und die Anwendung (einschließlich VBA-Host wie Excel) kann zum Absturz führen..utf8.*
Dateien, entfernen Sie japanische Kommentare und importieren Sie sie. Public Sub RegexSample()
Dim host As New CLRHost
Call host.Initialize(False)
On Error Resume Next
Dim asmSys As mscorlib.Assembly
Set asmSys = host.CLRLoadAssembly("System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
Dim cobjRegex As mscorlib.Object
Set cobjRegex = host.CLRCreateObjectWithParams("System.Text.RegularExpressions.Regex", _
"([0-9])+")
Dim cobjColl As mscorlib.Object
Set cobjColl = host.CLRInvokeMethod(cobjRegex, "Matches", "10 20 50 1234 98765")
Dim vMatch As Variant
For Each vMatch In host.ToEnumerable(cobjColl)
Dim cobjMatch As mscorlib.Object
Set cobjMatch = vMatch
Debug.Print "Matches: "; host.CLRProperty(cobjMatch, "Value")
Set cobjMatch = Nothing
Next vMatch
vMatch = Empty
Set cobjColl = Nothing
Set cobjRegex = Nothing
'Call host.Terminate
Set host = Nothing
End Sub
Jet (@jet2jet)
Neue BSD-Lizenz (oder die 3-Klausel-BSD-Lizenz)