今回はマクロ編の総仕上げとして、計算結果を示すダイアログボックスを表示させないまま、繰り返し処理の中でソルバーを動かせるようにします
前回は、前々回に作成した記録マクロを修正し、ソルバーの指定範囲(目的セル、変数セル、制約条件)を変数で指定できるようにしました(TargetRange、myRange)
繰返し処理とソルバーを組み合わせると、一度のマクロ操作で必要な値を一覧で取得できます。
一覧で取得した値を比較することにより、 シミュレーションの精度を格段に向上させることができます
それはもう、AIを導入したかのうような感覚になりますよ!
ぜひ今回で繰り返し処理をしっかり習得しておきましょう!
今回、前回作成したマクロを引き続き使って、繰り返し処理をおこなっていくのですが、
実は今回、習得するポイントはあまり多くなく、1つだけです
!ソルバーのダイアログの表示をどう防ぐか?
ソルバーの計算が終わった後にダイアログが必ず表示されますよね?
この表示が出てしまうと繰り返し処理が止まってしまいます。
このダイアログの表示を止める方法については、後ほど解説致します。
繰り返し処理自体のVBAコードの詳細な解説については、他の専門サイトや専門書に譲りたいと思います
目次
ソルバーの各指定範囲を変数で置換え
前回は2つの範囲をIF構文で切り替えて指定できるようにしました
今回は表の最終行(変数:Last)を取得した上で、カウントアップ用変数のiと連動してソルバーの対象範囲を変えていけるようにします
上の画像にあるmyRowはiと連動してカウントアップしていきます
ソルバーのダイアログを非表示
これはこの4文字を足すだけで可能です ⇒TRUE
実際に動かしてみる
下のGIF画像のように、最終行を変更しながらマクロを動かしてみましょう!
どうでしょう?うまく計算できましたでしょうか?
<まとめ>
ソルバーを使うと複雑なシミュレーションも簡単に行えます。実践的に活用する為のポイントとしては以下の2つだと思っています
・制約条件を整数やバイナリ、など実用的な形で指定する
・Productsum関数や^2(差の絶対値化)など数式の使い方を工夫する
マクロについては意外と簡単だったのではないでしょうか?もしうまく行かなかったら、記録マクロを作成してよく観察してみましょう!
最後に、アイキャッチ画像に使っているのはマクロで作成しているスピードメーターグラフです
こういった見る人の目を引くアイテムと「ソルバー」を組み合わせると楽しいシミュレーションボードが出来ます
ぜひトライしてみてください
⇒スピードメーターグラフ(マクロ付き)はこちらから
⇒スピードメーターグラフ(グラフ機能版)の解説はこちらから
コメントを残す