Solverによるシミュレーション5~マクロ編~

前回まである程度はソルバーを実践的に活用できるようになったと思います

 Solverによるシミュレーション

  Solverによるシミュレーション2

 Solverによるシミュレーション3~実践編・整数設定~

 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の変数で置き換えられそうかについてのイメージがついてきたと思います

今回は記録マクロにとどまりましたが、次回は本格的にソルバー・マクロを作成していきましょう!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です