vb2clr
1.0.0
La classe d'assistance CLRHost
pour Visual Basic pour Applications (VBA) 7.0, donnant accès aux assemblys et classes CLR (.NET Framework).
Pour utiliser .NET (anciennement .NET Core), envisagez d'utiliser vb2net.
Visual Basic pour Application 7.0 (inclus dans Microsoft Office 2010 ou version ultérieure)
LongPtr
en Long
et supprimez tous les spécificateurs PtrSafe
. CLRHost
CLRHost
ou appeler la méthode Terminate
lorsque vous avez fini d'utiliser CLR.True
au paramètre TerminateOnExit
de CLRHost.Initialize
, vous ne devez pas arrêter le débogueur lors de l'arrêt ou de la mise en pause de l'application.ExitHandler
ne peut pas être exécuté lorsqu'il est arrêté pendant une pause, et l'application (y compris l'hôte VBA tel qu'Excel) peut provoquer un crash..utf8.*
, supprimez les commentaires japonais et importez-les. 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)
Nouvelle licence BSD (ou licence BSD à 3 clauses)