- 締切済み
分析ツール(VBA)でコード作成
分析ツール(VBA)をアドインしてその特有の構文を利用して作成したコード は分析ツールをアドインしていない Excel でも動作するのでしょうか。 複素数を係数に持つ2次方程式のプログラムを作成したいのですが、その 過程で上記の問題点がでてしまいました。 関係上、分析ツールを利用しなくても2次方程式を解くVBAがありましたら是 非ご紹介お願いします。(電子制御関係で必要になったため)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
#1です。 お礼の中の2点について >多くの人たちに活用していただくためには分析ツール、アドインは先ず利用しないという方針です フリーソフトや市販ソフトの利用者のようなことを考えているのですか 例えばエクセル関数でも、EOMONH、EDATEはMS社のアドインが必要ですが、このコーナーの回答や質問に良く現れます。回答にはツールーアドイン・・の操作が必要なことを注記はされていることが多いですが、その点で質問者から再疑問など出てないようです。 ーー >アドインなしでも複素数の積が計算できることは知りませんでした 小生はそうであるとは言っていませんし、ソウでないと思います。 アドインありで、VBAでの記述する場合のことを参考までに挙げたのです。 >アドインのチェックを外しても動くのではないか、の心配がありますが) なぜ心配なのでしょうか。 アドインをインストールし、ツールーアドインー分析ツール(または分析ツールVBA)のチェックをはずすと「参照設定」のような働きがなくなり、つかえなくなる(エラーになる)と思います。 EOMONTHではブックを開いた後のチェックOFFでも#VALUE!になります。
- imogasi
- ベストアンサー率27% (4737/17069)
>分析ツールをアドインしていない そのアドインはインストールできないのですか。 エクセルのツールーアドインー分析ツールは拡張型の関数の利用の為に導入するためのもののように見える(誤りかも)、がそれ以外の MS社以外が作ったアドインですか。 エクセルのツールーアドインー分析ツールの導入は難しいとか、追加出費の要る物ではないと思うが。 >アドインしてその特有の構文を利用して作成したコード とはどんなものですか。 >複素数を係数に持つ2次方程式のプログラムを作成したいのですが >複素数 複素数の関数を使うということなら(複素数の関連の関数は15種あるらしい) 例 複素数の籍 A1 2+3i B1 3+5i D1に=IMPRODUCT("2+3i","3+5i") D2に=IMPRODUCT(A1,B1) でどちらも -9+19i ーー VBAでは、標準モジュールで Sub test01() ret = Application.Run("ATPVBAEN.XLA!improduct", "2+3i", "3+5i") MsgBox ret ret = Application.Run("ATPVBAEN.XLA!improduct", Range("A1"), Range("B1")) MsgBox ret End Sub といった使い方で、どちらも -9+19i となります。 >2次方程式を解く 色々方法はあると思うのだが、(根の公式、近似法など)どんなことを考えているのか。 根の公式によるのであれば、あえて複素数というほどのことは無いのでは。 ーーーー 私の上記に書いたことは、私は門外漢なので、的外れなら、無視してください。 ==== しかしこのコーナーのエクセルの質問の回答者を回答ぶりから見ていると、文系プログラマ、文系実務でエクセルの熟知者ではないかと思います。 ーー エクセルの話題ではあっても、数理や理工系エンジニアが見そうなコーナーに質問されるのがよいのでは。 質問の中身も考えずに、エクセルを使うから、エクセルのカテゴリのコーナーに質問するのは、現状では不適当ではないかと思う場合が、時々あります。両者兼備であればよいが、そういう人がこのコーナーを見ていると思いますか。」財務・経理。在庫。人事などのビジネス分野で通常レベルでは、複素数は出てきません。
お礼
ご指摘、ありがとうございます。分析ツールのアドインは入れようと思えば入れることは可能です。しかし、ツールとして多くの人たちに活用していただくためには分析ツール、アドインは先ず利用しないという方針です。敢えてそのうえでの質問です。 アドインなしでも複素数の積が計算できることは知りませんでした。感謝します。(アドインを一度入れてしまうと、アドインのチェックを外しても動くのではないか、の心配がありますが) 2次方程式の解法としては 1)アドインが利用できれば根の公式と、根と係数の関係の利用で、公式化することで、作成は可能です。 2)アドインがない場合は実数部、虚数部を分けることで計算処理を地道にたどることで可能かもしれません。(現在、この手法で作成中です。) 尚、この複素数に対応したVBAに関する質問の適否へのアドバイスは確かに書かれているとおりかもしれません。ご指摘に感謝します。
お礼
フリーソフト、市販ソフトではありません。当方の業務範囲のソフトです。利用者は20名程度ですが、大抵はアドインを外して利用しています。アドインを利用するのは私一人程度です。それもプログラム環境です。周囲に利用OKなときにはアドインなしで動作するようにしています。 >フリーソフトや市販ソフトの利用者のようなことを考えているのですか >回答にはツールーアドイン・・の操作が必要なことを注記はされていることが多いですが、その点で質問者から再疑問など出てないようです。 何故、こんなことに言及されるのでしょうか? ここの質問の常識外のことだからでしょうか? 常識でよいなら質問などはしませんが。当方の職場では基本的にアドイン組込みを禁止しています。チェックを外す、外さないの問題ではないのです。