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 ライセンス)