Передача данных произвольного типа между VBA и dll

Итак, я работаю над проектом Excel, который будет загружать dll С++ с помощью VBA. Что я хотел бы сделать, так это иметь возможность передавать диапазон Excel без определенного типа (данные могут быть числовыми или категориальными )в dll C++ (Лучший способ, которым я могу описать свой диапазон Excel, типvariant).

Таким образом, шаги, вероятно, включают:

  1. Загрузите dll в VBA
  2. Отправить диапазон Excel в dll (Диапазон может содержать столбцы чисел и/или столбцы строк)
  3. управлять данными из excel в файле dll

Я думаю об использовании варианта excel и варианта C++. Но мне непонятно, как использовать вариант C++, так как я не смог найти по нему хорошей документации.

Другое предложение, которое я получил, заключалось в программировании ues COM.

Мои вопросы:

  • Может ли добрая душа подсказать мне, как действовать дальше? (напр. предоставив прототип C++,и простой пример того, как обрабатывать вариант)
  • Кто-нибудь знает какую-нибудь хорошую документацию/руководство по использованию вариантов С++ (и, возможно, совместно с VBA )?
  • Является ли использование COM предпочтительнее использования ВАРИАНТОВ, если скорость является проблемой?
  • Можно ли использовать C API?

ОБНОВЛЕНИЕ:

  • Размер диапазонов, которыми мне нужно манипулировать, может быть большим (~500 000 строк ).
  • Скорость - это фактор, поэтому я хотел бы максимально избежать ненужного копирования.
6
задан Community 9 July 2018 в 18:41
поделиться