VBAを常に実行する方法とPCスペックについて

このQ&Aのポイント
  • EXCELのソルバーとVBAを組み合わせて数値計算を行い、最適解を求める方法について詳しく教えてください。
  • VBAを常に実行するためには、別のソフトを並行して使用する方法がありますか?それともPCスペックの問題でしょうか?
  • 質問者の使用しているPCのスペックは、OSがw2k sp4、office2000 pro、メモリが768MB、CPUがpen4 2.4GHzです。
回答を見る
  • ベストアンサー

VBAを常に実行するには?

EXCELのソルバーとVBAを組み合わせて数値計算をさせています。 方程式の定数部分を段階的に変化させていった場合の最適解を求めるため、長い時には30分程度かかることがあります。 このためその間にwordやIEなどのソフトを起動して別のことを並行して行いたいのですが、そちらのソフトにフォーカスを移すと一気に処理速度が落ちて困っています。(EXCELにフォーカスを戻すと元の処理速度に戻ります。) 別のソフトを並行して使えるようにする方法があるのでしょうか。 それとも単なるPCスペック上の問題でしょうか。 ご存知の方、是非教えて下さい。よろしくお願いします。 ちなみにスペックは、 OS:w2k sp4 office2000 pro メモリ:768MB CPU:pen4 2.4GHz です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 少なくとも、30分掛けても、ソルバーで解が見つかるのですね。 ソルバー自体は、そんなに速いものではありません。ソルバーである限りは、難しい問題かもしれません。ソルバーは、"office2000 pro"などは関係がなく、例えば、画面の切り替わりを止める、 Application.ScreenUpdating = False を入れてみるとかいう方法しか考えられませんね。

motsuniko
質問者

お礼

前回に引き続きご回答ありがとうございます。 説明足らずで申し訳ないのですが、シート内でも計算させているため、ご推薦の方法で行うと再計算が行われなくなってしまうようです。 その後、常にウィンドウを最前面に表示させるソフトウェアを探していたところ、最前面に表示させるだけの機能(アクティブにならずに処理速度低下)のものと、最前面に表示+アクティブの状態になるものがありましたので、EXCELのウィンドウをできるだけ小さくして邪魔にならない状態で、後者のソフトウェアを使ってなんとか当初の目的を果たせました。(あまりスマートな方法ではありませんが。)

関連するQ&A

  • VBA 再実行

    エクセルVBAでループによる以下のような定期実行を行っています。 >1時間に一度株価のデータを取りに行きます。 >データ取得後、他のPCに(VBAでソフトを起動させて)アップロードします。 *このアップロードの時に、ソフトが別の処理をしていると起動しません。 VBAで起動はさせるものの、ソフトが実行しないという状態になります。 そこで、一度行った処理を時間をおいて再度実行させたいのです。 できれば、30秒後と1分後に2回再実行するというようにしたいと思っています。 どなたか、お力添え頂けませんか

  • エクセルを使用した非線形方程式の解の求め方について

    エクセルにて任意の非線形方程式の解を求めるにはどのようにすればよいのでしょうか。 例えば 0=2/x^4+3/x^3+1 という方程式は具体的にエクセルでどのようにすれば解を求めることができるのでしょうか。 自分で調べたところエクセルのソルバー機能を使った0 = ax^2 + bx + cのような簡単な二次方程式の解き方などは理解できましたがそれ以上は自分の理解・知識不足のためわかりませんでした。 どうかご教授お願いいたします。

  • 1つのVBAコードをすべてのコアを使って実行させたい

    いつもお世話になっております。 クアッドコア搭載のPCを購入してVBAの処理速度の向上を期待していたんですが、1つのコアだけで処理されているようです。 EXCEL2000でVBAコードを実行したのが原因だと思いまして、試用版のEXCEL2007を使って同じVBAコードを実行してみたのですがダメでした。 VBAコードをすべてのコアを使って実行することはできないのでしょうか。 特別なコードを記述しなければならないのでしょうか。 よろしくお願いいたします。

  • この式の計算の仕方

    f=0.1x^3+0.05x^2-3 g=2-0.5/e^x ただしeは自然定数です。 f=gとなるような方程式の解をソルバー法やゴールシーク法でもとめたいのですが、どのように入力すればよいのかが全く、分かりません。どなたか教えていただけませんか?よろしくお願いします。

  • ソルバー

    Excelについての質問なのですが、 ソルバーは新しいExcelのソフトを買えば付いている機能ですか? それとも新しいExcelのソフトを買ったとしても、ソルバーのCD-ROMを別に買わなければなりませんか?

  • EXCELのソルバー機能をグラフで解く方法

    EXCELのソルバー機能の説明で、制約条件をグラフ化しても、解を求めることが出来ると記述されています。 制約条件はたまたま今やってみているのは 200,000X+100,000Y=Z 10X+2Y≦140 1,000,000X+500,000Y≦20,000,000です。 散布図でやってみましたが、わかりません。 2次方程式のグラフがEXCELで描けるのであれば教えてください。 (ソルバーでの解き方は理解しています)

  • フリーソフトのVBA

    ウェブからデータを取り込める エクセルのフリーソフトを使ってるのですが どういった処理をしているのか VBAを見たいのですが、無理ですか?

  • VBA ユーザフォームを非アクティブ固定にしたい

    エクセルVBAで作成されたプログラムで、一点改善したい点があります。 処理の開始を命令すると、ユーザフォームが出てきて進捗が「5/100が完了しました」のように 分かるようになっているんですが、処理が進み、この「5/100」の部分が更新される度に フォーカスがユーザフォームに移ってしまい、他の作業をしていると大変不便です。 ユーザフォームまわりのコードは以下のようになっています。 UserForm11.Show UserForm11.Label2.Caption = "処理実行中です。" & "(" & cnt1 & "/" & cnt2 & ")" 進捗を確認しつつ、かつフォーカスしないようにするようなコードはありませんでしょうか。

  • 関数とマクロ(VBA)について

    関数とマクロ(VBA)について エクセルで関数を多様するのとVBAを書くのとでは、処理速度およびファイルサイズが変わりますか? ちなみに現在、関数を多様してるせいなのかファイルサイズが21Mもあり、コア2.66G、メモリ2Gでちょっと時間がかかります。データは12000行くらいです。 VBAの方がいいとしましても、全く出来ないのでこれからの勉強になると思いますが・・・。 やはり、VBAでしょうか?

  • 非線形連立方程式の解

    数学に詳しい方、どなたか教えて下さい。 下記のような非線形連立方程式を解こうと、エクセルのソルバーを使って試みましたが、 解が得られませんでした。 ちなみに初期値は(x,y)=(1,1)で実行しました。  12171060/e^((0.03+x)/y)+4847040/e^((0.06+x)/y)+762696/e^((0.09+x)/y)-1=0 …(1)  13523400/e^((0.02+x)/y)+5385600/e^((0.04+x)/y)+847440/e^((0.06+x)/y)-1=0 …(2) 非線形連立方程式の解法、解がある条件などについてまったくの無知な為、 本当に解がないのか、単に初期値の設定が悪いために収束しないのか判断できません。 この方程式に解があるのかどうか、解が存在するのならどうやれば数値的に求められるのか、 どなたか教えて頂けますでしょうか。

専門家に質問してみよう