エクセルソルバーでエラーが出た時に確認すること【ケース別3種】

エクセルソルバーでエラーが出た時に確認すること【ケース別3種】

えびかずき
えびかずき

こんにちは、えびかずきです。

今回は、ソルバーアドインでエラーや不具合が発生した場合に確認べきことをケース別にまとめました

こんな人におすすめ:
・いつも使っているソルバーが急に使えなくなってしまった。
・そもそもソルバーが画面に表示されなくて困っている。
・VBAで操作しようとするとうまくいかない。
・計算が収束しなくて困っている。

確認した動作環境

  • Windows/Excel2016 (ver.1908)
  • Windows/Office365 (ver.1908)
  • Mac/Excel2016 for mac (ver.190811)

※以下の説明及び使用している画像は、主にWindowsでのExcel2016になります。

ソルバー自体が実行できないケース

①ソルバーアドインが有効になっているか?

ソルバーはデフォルト状態のエクセルでは使えず、必ず有効化をしてやる必要があります。

有効化されているかどうかの確認は、「ファイル」→「オプション」→「アドイン」と設定画面を開いて、

「アクティブなアプリケーション アドイン」に”ソルバーアドイン”が含まれているかどうかをご確認ください。

※Macの場合は、「ツール」→「エクセルアドイン」で確認できます。

ソルバーが有効化されていない場合、または初めてソルバーを使用する場合は、上図の「設定」ボタンからアドインの有効化をします。

詳しくは、下の記事をご参考に有効化を実施してください。

②アドインを無効とする設定になっていないか?

「ファイル」→「オプション」→「セキュリティーセンター」→「アドイン」と設定画面を開いて、

すべてのアプリケーション アドインを無効にするのチェックが外れていることを確認します。

※Mac版のExcelではこの設定はありません。

③ActiveXの設定が無効となっていないか?

マイクロソフトのサポート情報によると、ActiveXの設定が無効となっている場合、ソルバーアドインの読み込みにエラーが生ずる場合がある様です。

”警告を表示せず全てのコントロールを無効にする”

にチェックが入っている場合は、

”先に確認メッセージを表示してから、最低限の制限を適用してすべてのコントロールを有効にする”

など、別の設定に変更します。

※Mac版ではこの設定はありません。

④アドインのシステムファイル自体を紛失しているケース

ソルバーアドインは”SOLVER.XLAM”というシステムファイルが本体となっており、WindowsPCの場合は通常CドライブのProgram Filesに格納されています。

このファイルが存在しない、もしくは適切な場所を参照できていないためにエラーが発生している可能性があります。

「ファイル」→「オプション」→「アドイン」と設定画面を開いて、”ソルバー アドイン”をクリックします。

下部の「場所:」に参照されているファイルが実際に存在しているかどうかをチェックします。

システムファイル自体がない場合には、面倒ですがエクセルをアンインストールし再度インストールを実施することをお勧めします。

※SOLVER.XLAMが保存されているフォルダは通常読み取り専用の隠しフォルダとなっているためファイルを紛失する可能性が極めて低いですが、何らかのトラブルで消えてしまっている可能性があります。

実行はできるが計算が収束しないケース

①計算方法の設定が手動になっていないか?

ソルバーでの最適化計算が複雑な場合、計算方法が「手動」に設定されているとステータスバーに”定式化中”と表示されて計算が始まらないことがあります。

その場合は、「数式」→「計算方法の設定」で、計算方法を”自動”に設定します。

※デフォルトの設定では自動になっていますが、何らかの誤操作で”手動”に設定が変わっている場合があります。

※Macの場合も同じ場所で設定変更できます。

②変数セルの初期値が不適切ではないか?

ソルバーで計算が収束しないあるいは期待した結果が出てこない場合にありがちなミスとして、変数セルの初期値が最適解と比べて遠すぎる(違いすぎる)ということが挙げられます。

ソルバーは変数セルに入力された初期値を最初の手がかりとして最適解を探し始めますので、あまりにも遠い値が入力されていると答えにたどり着かない場合があります。

この場合は、初期値を変えてみる、もしくは制約条件を追加してソルバーが解を探索する範囲を狭めてやることが有効です。

③変数セルが負の数となるか?

変数セルが負の数となる結果を期待している場合は、ソルバーの設定を変更する必要があります。

ソルバーの設定画面を開いて、

”制約のない変数を非負数にする”

のチェックを外してやります。

制約条件に整数条件を課しているか?

制約条件に整数条件を課している場合、ソルバーの設定を確認する必要があります。

ソルバー設定画面の「オプション」を開き、

”整数制約条件を無視する”

にチェックが入ってしまっている場合は、これを外します。

マクロが動かないケース

VBAでソルバーを動かそうとした場合に、下図の様な

「コンパイルエラー:SubまたはFunctionが定義されていません。」

というエラーメッセージが出る場合があります。

この原因はVBAでソルバーを使うためのライブラリが有効化されていないことが原因です。

Alt+F11キーでマクロの開発画面を開き、「ツール」→「参照設定」にて、

”Solver”にチェックを入れてOKを押してください。

まとめ

今回はエクセルソルバーでエラーや不具合が発生した場合に対処方法についてまとめました。

エクセルに詳しい方もそうでない方も、もしかすると見落としている確認項目があるかもしれませんので一通り確認してみてはいかがかと思います。

solverカテゴリの最新記事