そのため、VBA を使用して C++ dll をロードする Excel プロジェクトに取り組んでいます。私がやりたいのは、特定の型のない Excel 範囲 (データは数値またはカテゴリである可能性があります) を C++ dll に渡すことができるようにすることです (私の Excel 範囲を説明できる最良の方法は型ですvariant
)。
したがって、手順にはおそらく次のものが含まれます。
- dll を VBA にロードする
- Excel の範囲を dll に送信します (範囲には、数値の列および/または文字列の列が含まれる場合があります)
- dll ファイルで Excel のデータを操作する
ExcelバリアントとC++バリアントを使用することを考えています。しかし、C++ バリアントに関する適切なドキュメントが見つからなかったため、C++ バリアントの使用方法が明確ではありません。
私が受け取った別の提案は、COM プログラミングを使用することでした。
私の質問:
- 親切な魂は、私がどのように進むべきかについての指針を提供してくれるでしょうか? (たとえば、C++ プロトタイプと、バリアントの処理方法の簡単な例を提供することにより)
- C++バリアントの使用に関する(そしておそらくVBAとの)優れたドキュメント/チュートリアルを知っている人はいますか?
- 速度が問題になる場合、VARIANT を使用するよりも COM を使用することをお勧めしますか?
- C API の使用はオプションですか?
アップデート:
- 操作する必要がある範囲のサイズは大きくなる可能性があります (~ 500,000 行)。
- 速度が重要な要素であるため、不要なコピーはできるだけ避けたいと考えています。