[Excel] ソルバーを使用して VBマクロを作成する
[Excel] ソルバーを使用して VBマクロを作成する方法
MSの公式サイト(http://support.microsoft.com/kb/843304/ja)の解説は、機械翻訳のため、分かりにくい。
以下の手順で、最適化ツール Solver をマクロの中で利用できる。
■準備:[参照設定]
(1)VBA のエディタを開く
(2)メニュー[ツール]-[参照設定]をクリック
(3)"SOLVER.xls" を指定する
■マクロ:以下のコマンドを使用
(1)SolverOK(SetCell, MaxMinVal, ValueOf, ByChange):モデル定義
(2)SolverSolve(UserFinish, ShowRef):実行
(3)SolverFinish (KeepFinal、ReportArray):完了
■例文:連続的なデータから順に抽出して、Solverを実行し、結果を順に格納する。
Sub Solver繰り返しマクロ()
For i = 1 To 100
'データ(B31+i-1前後9点)の値を(B5-B13)にコピー
Range("B5:B13").Value = Range(Cells(i + 30 - 4, 2), Cells(i + 30 + 4, 2)).Value
' パラメータ設定:目的セル=D14、パラメータセル=E9-G9
' 条件:MaxMinVal =2 (目的セルを最小値にする;最大にするなら1;特定値にするなら3)
SolverOk SetCell:="D14", MaxMinVal:=2, ValueOf:="0", ByChange:="E9:G9"
' 結果ボックスを非表示
SolverSolve UserFinish:=True
'結果(E9-G9)の値を5-7列目の31行以下にコピー
Range(Cells(i + 30, 5), Cells(i + 30, 7)).Value = Range("E9:G9").Value
' 終了&結果を保持(破棄&元の値を復元なら=2)
SolverFinish KeepFinal:=1
Next i
End Sub
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- [ez-HTML] 文字コードがUTF8の場合の文字化けを回避する方法(2013.08.07)
- [Firefox] PDFファイルが変換されて表示される(2013.04.16)
- [Firefox] PDF ファイルが表示されない(2010.09.01)
- [Firefox] PDF ファイルがブラウザ内で開かず、保存(ダウンロード)するようになった(2012.10.03)
- [Word2010] パスワード保護され、ファイルの編集ができない場合(2013.07.30)
コメント