[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
| 固定リンク | 0
「パソコン・インターネット」カテゴリの記事
- [IrfanView] 画像の座標や輝度値を表示させるには?(2025.03.26)
- テレビでYoutube広告をスキップする方法(2024.09.22)
- [動画]字幕の時間調整をする方法(2024.09.14)
- [Windows10] フォルダ表示形式の統一方法(2024.09.09)
- [Word] 図形や画像が印刷できない(2024.08.31)
コメント