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

前回前々回の記録マクロを修正してソルバーの指定範囲(目的セル、変数セル、制約条件)を変数で指定できるようにしました(TargetRange、myRange)

今回は総仕上げとして、繰り返し処理の中でソルバーを動かせるようにします

繰返し処理とソルバーを組み合わせると、一度のマクロ操作で必要な値を一覧で取得できます。

一覧で取得した値を比較することにより、シミュレーションの精度は格段に向上させることができますので、ぜひ今回で繰り返し処理をしっかり習得しておきましょう!

今回、前回作成したマクロを引き続き使って、繰り返し処理をおこなっていくのですが、

実は今回、習得するポイントはあまり多くなく、1つだけです

 !ソルバーのダイアログの表示をどう防ぐか?

ソルバーの計算が終わった後にダイアログが必ず表示されますよね?

この表示が出てしまうと繰り返し処理が止まってしまいます。

このダイアログの表示を止める方法を解説致します。

繰り返し処理自体のVBAコードの詳細な解説については他の専門サイトや専門書に譲りたいと思います

1.ソルバーの各指定範囲を変数で置き換える

前回は2つの範囲をIF構文で切り替えて指定できるようにしました

今回は表の最終行(変数:Last)を取得した上で、カウントアップ用変数のiと連動してソルバーの対象範囲を変えていけるようにします

上の画像にあるmyRowはiと連動してカウントアップしていきます

2.ソルバーのダイアログを表示しないようにする

これはこの4文字を足すだけで可能です ⇒TRUE

3.実際に動かしてみる

どうでしょう?うまく計算できましたでしょうか?

<まとめ>

ソルバーを使うと複雑なシミュレーションも簡単に行えます。実践的に活用する為のポイントとしては以下の2つだと思っています

・制約条件を整数やバイナリ、など実用的な形で指定する

・Productsum関数や^2(差の絶対値化)など数式の使い方を工夫する

マクロについては意外と簡単だったのではないでしょうか?もしうまく行かなかったら、記録マクロを作成してよく観察してみましょう!

最後に、アイキャッチ画像に使っているのはマクロで作成しているスピードメーターグラフです。こういった見る人の目を引くアイテムとソルバーを組み合わせると楽しいシミュレーションボードが出来ます。ぜひトライしてみてください

⇒スピードメーターグラフ(マクロ付き)はこちらから

⇒スピードメーターグラフ(グラフ機能版)の解説はこちらから

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


にほんブログ村

コメントを残す

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