
Running .NET from VBA
مجرد تجربة لطرق مختلفة لتحميل تجميعات CLR (.NET) في VBA محليًا وعن بُعد باستخدام AppDomain.ExecuteAssembly أو أي طريقة مناسبة أخرى بعد تجاوز AccessVBOM (الوصول البرمجي لمشروع Visual Basic غير موثوق) من VBA.
vba2clr.*.vba:
AccessVBOM إلى 1Word.Application. (يمكن أن يكون Excel.Application أو MS PowerPoint أو Access ..إلخ).wordObj.Application.Run...ExecuteAssembly.clr.2.0.vba: حتى .NET 3.5
IDomain, ICRHost)AppDomain.ExecuteAssembly المطلوبة في مصفوفتين منفصلتين (متغيرات، أنواع).AppDomain.ExecuteAssembly(Arg1, Arg2) (إزاحة VFTable 51) حيث Arg1 هو ".NET Assembly URL" أو "Local Path" و Arg2 هو القيمة المُرجعة.QueryInterface و AddRef و Release.ExecuteAssembly.clr.x.vba: يدعم .NET 2 و3.5 و4.x
Word.Application (أو Excel.Application ..إلخ)، سيؤدي إلى إطلاق عملية WinWord.exe إضافية كعملية فرعية من svchost.exe بدلاً من عملية WinWord.exe الرئيسية.AccessVBOM عبر COM باستخدام WScript.Shell، وقد يكون استخدام واجهات برمجة تطبيقات win32 بديلاً أفضل.AccessVBOM، سأترك هذا ليوم آخر...System.CodeDom.Compiler لتجميع/تنفيذ كود c# من VBA، راجع المرجع أدناه؛