Я пытаюсь создать DLL в VB.NET, используя Visual Studio 2017. DLL будет использоваться в VBA в другом приложении.Проект VB.NET является проектом библиотеки классов .NET Framework.
Я добавил файл * .TLB в качестве ссылки в VBA.Я только пытаюсь создать и использовать один метод в библиотеке классов.Я вызываю его в VBA, используя что-то похожее на следующее:
Sub MySub()
Dim TestObj As MyProjectName.MyClassName
Set TestObj = New MyProjectName.MyClassName
Call TestObj.MyMethodName(Argument)
End Sub
Код всегда выдает ошибку выполнения 429 «ActiveX компонент не может создать объект» в следующей строке (из примера выше):
Set TestObj = New MyProjectName.MyClassName
Этот вопрос задавался ранее, однако большинство из них довольно старые (~ 10 лет), и ни одно из предложенных решений не имело никакого значения.Я продолжаю находить ссылки на REGASM.EXE.Насколько я понимаю, Visual Studio обрабатывает это автоматически, и что вызов этого вручную не требуется, если установлен флажок «Проект> Свойства> Компилировать> Зарегистрировать для взаимодействия COM».
Я следовал этим инструкциям длябуква: https://smallbusiness.chron.com/use-net-class-library-excel-vba-40349.html
Кроме того, я попытался создать вместо этого класс COM в ответ на следующий вопрос: Компонент ActiveX не может создать объект при использовании класса .net в vba
Я пробовал по крайней мере полдюжины различных итераций этого, и все они выдают Runtime Error 429 «ActiveX компонент не может создать объект».Есть что-то, чего я здесь не хватает?Может ли это быть проблемой версии как-то?Мой проект VS ориентирован на .NET Framework 4.7.2.