« Amnesty 1.3 | トップページ | clamav-updateのインストール »

2007年1月14日 (日)

Excel VBAとBCB6

ネタがないのでWindowsの話でも (^^;)

ExcelのVBAで指数関数や三角関数を何個か含んだ関数の二重積分の数値積分プログラムを作った(かれこれ一年以上前の事)。二重積分なのでなるべく収束を早くさせるために、シンプソン則にリチャードソンの補外を組み合わせている。今時のGHz級のマシンで計算すれば、一回の積分計算は10秒もかからないのだけど、パラメータをかえて60点ほど計算させると合計で5分以上かかることもある。そこで数値積分の部分をCで書いてDLLにしてVBAから呼んだら計算が速くなるかと思ったのだけど、計算時間はあまり変わらなかった (^^;) おそらく指数関数や三角関数の関数計算が処理の支配的な要因なんだろうな。

実はBorland C++ Builder 6はコンソールプログラムを作る位しか使ったことがなくて、DLLの作り方がいまいちよくわからないのでVBAからCで作った関数を呼ばずに、全部Cで書いて動かしたものと比べたのだけど。正確には、a+bみたいな簡単な関数をDLLにしたのはちゃんとVBAから呼んで動いたのだけど、この数値積分関数はVBAから呼び出すとExcelが落ちてしまうのだな。普段プログラミングなんてしないので、何が悪いのかさっぱりわからない (^^ゞ

|

« Amnesty 1.3 | トップページ | clamav-updateのインストール »

Windows」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Excel VBAとBCB6:

« Amnesty 1.3 | トップページ | clamav-updateのインストール »