今回からはマクロによりソルバーの設定・解決自体の自動化に取り組んでいきましょう!
前回までの4回の解説では、ソルバーの基本設定から実践的に活用する方法まで解説させて頂きました
Solverによるシミュレーション4~実践編・バイナリ設定~
ソルバーをマクロで活用できるようになると、弱気ベース、強気ベースなど様々なパターンで算出した値を瞬時に比較できるので、より実践的なシミュレーションが行えるようになります!
今回はソルバーのシナリオを2つ、記録マクロで保存してみてVBAコードを比較してみましょう!
そうするとコードの書き方がつかめてきます
その前に準備が1つあります
事前にVBE(Alt+F11で開く画面)でSolverライブラリを参照可能にしておきましょう!
このライブラリが無いと、記録マクロが動きません!
では本題に入ります
今回は1~3まで以下の表を通じて解説していきます
注)D4セルも同様の数式(X1xX2)が入力されています
注)D3セルのYはシナリオ1用、D4セルのYはシナリオ2用になります
1.シナリオ1記録(※X1,X2は4以下の制約にてYを最大化する)
➀以下のシナリオでマクロを記録
②VBEを開けて重複しているコードを削除し、コードを以下の画像のように3部構成にします
③表の値を1にセットし直してシナリオ1マクロを起動
もしもうまくいかなかったら、余計なコードまで消してしまったか、もしくは前述の”Solverライブラリ”にチェックが入っていない状態になっています
2.シナリオ2記録(X1,X2は2以上の制約にてYの値を4にする)
➀設定リセット
記録する際には、ソルバーの設定画面上に前回の設定が残っているのでリセット処理を行っておきましょう
②以下のシナリオでマクロを記録
③VBEを開けて重複しているコードを削除し、コードを4部構成にします
注)シナリオ1にも”SolverReset”を追加しておきましょう!
④表の値を1にセットし直してシナリオ2マクロを起動する
どうです?うまくソルバーは無事に稼働したでしょうか?
3.2つの記録マクロを比較してみる
大前提として2つのシナリオの違いをもう一度整理してみましょう!
➀目的セル、変数セル、及び制約条件を指定するセルの行位置が違う
②目標値の設定の仕方が違う;シナリオ1/最大値、シナリオ2/指定値
③制約条件の符号が違う:シナリオ1/<=、シナリオ2>=
どうでしょう?朧気ながらどのへんをVBAの変数で置き換えられそうかについてのイメージがついてきたと思います
今回は記録マクロにとどまりましたが、次回は本格的にソルバー・マクロを作成していきましょう!
コメントを残す