掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エクセルセル範囲を代入したVariant型変数をC/C++で作るDLLに渡すには? (ID:70062)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めて質問させていただきます。よろしくお願いします。 Excelの多量の文字列処理をC/C++で作ったDLLでやろうとしています。文字列一個ずつを渡して処理する事は出来たのですが、期待した程速くならなかったので、配列のまま渡して処理してみようとトライしています。 http://madia.world.coocan.jp/vc/vc_bbs/200609/200609_06090040.html のBlueさんのご回答を参考に、一次元の文字列配列をDLL側で受けるのは確認出来たのですが、 http://support.microsoft.com/kb/410837/ja の記事も参考に、二次元の配列を処理しようとしたとき、 VBA側で、variant型の変数に、セル範囲を代入したもの(例:myVariant = Range("A1:B2")といった具合に)をDLLに渡そうとすると、 if ( v->vt != ( VT_ARRAY | VT_BSTR | VT_BYREF ) ) return; を通らないので、とりあえずコメントアウトして動かしてみると、 SafetyArrayに代入する psa = *( v->pparray ); のところで、Excelが異常終了してしまいます。 「variant型の変数に、セル範囲を代入したもの」を渡すのは無理なのでしょうか。また、可能とすると、どのようにやれば良いのでしょうか。御教示下さい。 なお、VC++掲示板に投稿するのは申し訳ありませんが、BCCで作成しています。(PC絶不調でVS2005の再インストールは様子見をしています)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.