Quelle est la bonne façon de passer un tableau de classes définies par l'utilisateur de vba à .net (en particulier C#) en utilisant com-interop?Passez un tableau de vba à C# en utilisant com-interop
Voici mon code C#. Si j'appelle Method1 de vba, il échoue avec "Array ou type défini par l'utilisateur attendu" ou "Fonction utilise un type d'automatisation non pris en charge dans Visual basic".
public class MyClass
{
public Method1(UserDefinedClass[] Parameters) { ... }
public Method2(Object Parameters) { ... }
}
J'ai lu un peu à propos de la classe MarshallAsAttribute. Serait-ce la pièce manquante dans le code C#?
Voici le code vba J'utilise:
Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
Nous avions besoin d'un peu plus d'infos ici. Pourriez-vous ajouter la définition VBA du type et du code indiquant que vous appelez l'interface COM? – JaredPar
Ajout du code vba. – Freddie
Votre déclaration de tableau déclare un tableau de variantes - il doit déclarer un tableau de votre UserDefinedClass, par ex. "Dim myArray (0 à 3) comme UserDefinedClass" – Joe