Я не знаю, есть ли у вас возможность сделать это, но вот как я решил это.
- Создать другую сборку (я назвал мою "xx.Common")
- Добавьте туда некоторые структуры, сделайте их видимыми для COM *
- Ссылка на эту сборку из проектов VBA и C #
- Добавить новую подпрограмму VBA с этими структурами в качестве аргументов
Теперь вы можете передавать структурированные, определенные пользователем данные. Если вы обобщите эту идею, вы можете использовать любой COM-видимый тип (т. Е. Не только структуры). Пока оба проекта ссылаются на сборку, которая определяет эти типы, вы должны быть в порядке.