ソルバーによるシミュレーション7~マクロ編・ループ処理~

 今回はマクロ編の総仕上げとして、計算結果を示すダイアログボックスを表示させないまま、繰り返し処理の中でソルバーを動かせるようにします  

画像に alt 属性が指定されていません。ファイル名: 36.jpg

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

前回作成マクロ

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

 一覧で取得した値を比較することにより、 シミュレーションの精度を格段に向上させることができます

それはもう、AIを導入したかのうような感覚になりますよ!

*********** ブログ管理人・ガッツの期間限定レッスン ***********

売りは技術でなく、経験です!

時間は30分から!あなたの都合のいい時間に、エクセルのお困りごとや悩みに対するヒントを提供します!!平日の昼間でも可です **************************************************************

ぜひ今回で繰り返し処理をしっかり習得しておきましょう!

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

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

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

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

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

このダイアログの表示を止める方法については、後ほど解説致します。

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

目次

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

ソルバーのダイアログを非表示

実際に動かしてみる

<まとめ>

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

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

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

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

ソルバーのダイアログを非表示

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

実際に動かしてみる

下のGIF画像のように、最終行を変更しながらマクロを動かしてみましょう!

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

<まとめ>

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

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

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

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

 最後に、アイキャッチ画像に使っているのはマクロで作成しているスピードメーターグラフです

 こういった見る人の目を引くアイテムと「ソルバー」を組み合わせると楽しいシミュレーションボードが出来ます

ぜひトライしてみてください

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

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

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


にほんブログ村

コメントを残す

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