Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

.net化の足をVBAが引っ張る?

前回 .net対応製品に、ADODB.Recordset が残っている話を書いたのですが、事情があるようでした。
該当するパッケージは VS2005だけが対象ではなく、 Excel VBAも対象としている由。
データエントリーやデータ開示部分をフロントエンジンとして Excel_VBAで可能というのも売り文句の一つだそうです。
これを実現するには、EXCELから呼ばれる口をCOMにするか、相互運用を使って.net Nativeで作るかのどちらかになります。
旧VB版の資産を考えると口はCOMにしたほうがコスト的に低いと判断し、インターフェースはCOMにした模様。
そのため、橋渡しするObjectはADODB.Recordsetになった由。
Recordsetは Openした状態で使用する仕様みなので、呼び出し元で rs.Openしてデータをセットして、Openした状態で引数渡しする仕組みになってます。
 事情は解ります。しかし、今時点から振り返ると古色蒼然に写ります。どうも落ち着かない。
直接IOする場合は、Openしたハンドルを引き渡すことがありますが、汎用メソッドの引数に、Open状態のインスタンスを渡すのは違和感を感じます。(動作的にはおかしくはないのですが)
COMを使うとパフォーマンスが2桁遅い上に、分散Transactionも使えないので、手動ロールバックの仕組みを考えないといけないし。....マイナス要素が多いと感じます。
VB6が終焉を迎えようとしていますが、VBAは当分現役の様子です。ということは、上記のパッケージのように、Office製品をフロントエンドに考えている製品を考えると、.net化の推進は難しいということなのかなぁ。
.net化の足をofficeが引っ張っている構図に感じるのは私だけ? 

投稿日時 : 2008年1月11日 1:01

Feedback

# re: .net化の足をVBAが引っ張る? 2008/01/11 1:29 中博俊

COMと.NETは相いれないからなぁ・・・
なんてわけね~~~
でもま、.NETのをCOM公開してVBAでもというのはやや使いづらいかな・・・

# re: .net化の足をVBAが引っ張る? 2008/01/11 1:48 ちゃっぴ

.NET Framework は複数 version を同一 process で共存することが難しいというのも問題点ですね。

ちなみに VBA だけじゃなく、VBScript とかもあるので簡単には移行は進みませんよ。

したがって、.NET Framework 1.1 よりも VB6.0 base なものが長生きしそうな悪寒。

# re: .net化の足をVBAが引っ張る? 2008/01/11 12:46 Chuki

そこでOffice 2007 ^^

MSがVBAの過去遺産を切っちゃったら、そもそもMS Officeを購入する理由がなくなっちゃう^;
かたや.NETも推進したいのでしょうし戦略策定が難しそうですね^^;

>でもま、.NETのをCOM公開してVBAでもというのはやや使いづらいかな・・・
ですね^^;

# re: .net化の足をVBAが引っ張る? 2008/01/11 18:48 Ognac

「当分COMと付き合わねばならない」のは事実ですね。
.net Native のフロントエンドが officeの時の、あるべき姿とは???? 解がでません

タイトル
名前
Url
コメント