- ベストアンサー
VBAでの複素数関数
nishi6の回答
実際にモデルを作りステップ実行してみましたら、アドインはRUNメソッドで関数名に対応したユーザー定義関数を呼び出し、その中では、またユーザー定義関数etMacroRegIdで関数のレジスタID(?よく分かりませんが)を取得し、再度RUNメソッドが実行されているようです。 (専門家ではないので詳しくは分かりません。違っているかもしれません。)大変な処理をしているんだなとビックリしました。 実際、どのような関数を使用され、どのような処理か分かりませんので2000件くらいのデータに対し複素関数計算をアドインVBAで実行させ、同様の結果が出るユーザー定義関数(アドインを使わない関数です)を作り数種類のパターンで比較してみました。 結果は、アドインよりも自分で作ったユーザー定義関数が1/2~2/3程度の時間で済みました。(たまたまかもしれません) 全部の複素関数を作ったわけではないので不確実ですが、ユーザー定義で複素関数計算を作りこんだほうが(またはモジュールに直接書いたほうが)速い場合があると思われます。 ただし、複素数から実数、虚数部分を取り出すような部分はアドインを使ったほうが速いかもしれません。アドインと自作関数(直接の計算)を使い分ける必要があるように思いました。そうすれば、少しは早くなるかもしれません。解決にはならないと思いますが一応報告します。
関連するQ&A
- 複素数関数のユーザー定義方法等をお教えください
カテゴリーにVBAがありませんでしたので VBに投稿させていただきます。 EXCEL2000VBAで複素数関数や三角関数等を用いて 加速度波形処理の勉強をしています。 過去のQ&Aで VBAアドインの複素数関数を用いた場合の 計算時間の長さを短縮する方法としまして (1)ユーザー定義で複素数関数計算を作成する。 (2)モジュールに直接書込む。 との記述がありました。(質問番号:81639) 上記(1)(2)につきまして詳しくお教えください。 自作のVBAにどのようにして上記(1)(2)を 作成又は書込みすれば良いのかがわかりません。 複素数関数計算のFUNCTION?等も お教えいただけましたら幸いです。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- VBAユーザー関数を外部から制御
ExcelのVBAで、標準モジュールにワークシートで使うユーザー関数を記述しています。 ユーザー関数は、使い勝手を組み込みのワークシート関数と同様にするため、 Application.Volatile (True) で自動再計算するようにしており、数百カ所以上のセルに使用しています。 しかし、他のVBAモジュールでユーザー関数の戻り値が変わるような操作をすると、その都度 数百か所以上が再計算されるため、非常に時間がかかります。 ユーザー関数のApplication.Volatile (False) にすると瞬間で終了する処理が、数分かかる場合も あります。 他のVBAモジュールから、一時的にユーザー関数の処理内容を変更するようなことは可能でしょうか。
- ベストアンサー
- Excel(エクセル)
- VBAでのwebservice関数の更新方法
エクセルにてwebservice関数を使って、定期的に情報を更新したいと思っています。 VBAでESCを押すまで無限ループを回して、定期的(例えばsleepで5秒寝かせるなど)にwebservice関数を実行したいと思っています。 しかし、シートの再計算などをさせてもwebservice関数の内容が更新される気配がありません。 webservice関数をVBAからの指示で再実行させる方法があれば教えてください。
- ベストアンサー
- Excel(エクセル)
- Excel VBA 圧縮、伸長の関数は?
Excel VBAでプログラミングしています。 扱うデータ量がおおきくなったためデータの保存はExcelシートから 外部ファイルに変更しました。しかし、ファイルサイズが大きくまた、VBAでの 処理が重く感じます。そこで、データを圧縮、伸長する関数があれば便利と思っています。ファイルに出力後に圧縮する方法はあるようですが、VBA処理、ファイルの読み書き時にデータが軽いといいので、VBAで扱える関数があればと思っています。関数、または他の方法をご存じの方、お教え願います。
- 締切済み
- Visual Basic
- エクセルVBAや関数を使って計算式できますか?
エクセルVBAや関数を使って、数学の問題を作りたいです。 というのは、√や分子や連立方程式などいろいろな計算式があったとします。 そこで、その計算式で、とある数字一カ所を変えるだけで、回答がとあるセルに出る 仕組みを作りたいです。 可能でしょうか?
- 締切済み
- その他(業務ソフトウェア)
- 複素数が引数の円柱関数
引数が複素数の円柱関数の解、及び計算手法がわかりません。|実数部|=|虚数部|のケルビン関数ではなく、 |実数部|≠|虚数部|の場合の解について教えてほしいです。宜しくお願いします。
- 締切済み
- 数学・算数
- VBA
VBAで計算したあと切捨てや、四捨五入の処理の仕方を教えてください。 あとエクセルの関数をVBAで使うことができますか?可能であれば使い方も教えてください。 お願いします。
- ベストアンサー
- Visual Basic
お礼
参照設定を使い何度もループさせていたので、 おっしゃられた通り、複素数に詳しい方に関数を作ってもらい(自分では作れませんでした)、モジュール内に直接書き込みプログラムを完成させました。 スピードは、当初 複素数関数を含んだ計算処理を実行した時は40分かかる計算が、なんと、4分になりました。(本当です)1/10です。 もう驚きです。 スッキリした気分です。 解決にならないどころか、とても参考になりました。 ご助言していただき、ありがとうございました。嬉しいです!