vb2clr
1.0.0
Visual Basic for Applications (VBA) 7.0 のヘルパー クラスCLRHost
、CLR (.NET Framework) アセンブリおよびクラスへのアクセスを提供します。
.NET (以前の .NET Core) を使用するには、vb2net の使用を検討してください。
Visual Basic for Application 7.0 (Microsoft Office 2010 以降に含まれる)
LongPtr
Long
に書き換えて、すべてのPtrSafe
指定子を削除します。 CLRHost
クラスを使用してコードを記述します。 CLRHost
インスタンスを解放するか、 Terminate
メソッドを呼び出す必要があります。CLRHost.Initialize
のTerminateOnExit
パラメーターにTrue
渡す場合、アプリケーションを中断または一時停止するときにデバッガーを停止してはなりません。ExitHandler
モジュール内のコードが実行できなくなり、アプリケーション (Excel などの VBA ホストを含む) がクラッシュする可能性があります。.utf8.*
ファイルを確認し、日本語のコメントを削除してインポートしてください。 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
ジェット (@jet2jet)
新しい BSD ライセンス (または 3 条項 BSD ライセンス)