問題の制約条件を追加します。 [データ | 分析] グループで [ソルバー] をクリックし、[ソルバー パラメーター] ダイアログ ボックスで [追加] をクリックするのと同じです。
メモ ソルバー アドインは既定では有効になっていません。 この関数を使う前に、ソルバー アドインを有効にしてインストールしておく必要があります。 この方法については、「ソルバー関連の VBA 関数を使用する」を参照してください。 ソルバー アドインがインストールされたら、このアドインへの参照を設定する必要があります。 Visual Basic エディターでモジュールをアクティブにした状態で、[ツール] メニューの [参照設定] をクリックし、[使用できる参照] の [ソルバー] を選択します。 [Solver] チェック ボックスが [参照可能なライブラリ ファイル] に表示されない場合は、[参照] をクリックして \Program Files\Microsoft Office\Office14\Library\SOLVER サブフォルダーにある Solver.xlam を開きます。
SolverAdd( CellRef, Relation, FormulaText)
CellRef 必須 バリアントです。 制約条件式の左辺を設定する値が入力されているセルまたはセル範囲への参照を指定します。 関係 必須 の整数。 制約の左右の間の算術関係。 4、5、または 6 を選択した場合、 CellRef は デシジョン変数セルを参照する必要があり、 FormulaText は指定しないでください。
Relation | 比較関係 |
---|---|
1 | <= |
2 | = |
3 | >= |
4 | CellRef によって参照されるセルには、整数である最終的な値が必要です。 |
5 | CellRef によって参照されるセルの最終的な値は、0 (ゼロ) または 1 である必要があります。 |
6 | CellRef によって参照されるセルには、すべて異なる整数の最終的な値が必要です。 |
FormulaText 省略可能 なバリアント型 (Variant)。 制約条件式の右辺の値を指定します。
注釈
制約が追加されたら、 SolverChange 関数と SolverDelete 関数を使用して制約を操作できます。
例
次の使用例は、ソルバー関連の関数を使って、総利益を最大値にする解を求めます。 SolverAdd 関数は、問題に 3 つの制約条件を追加するために使われます。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions precision:=0.001
SolverOK setCell:=Range("TotalProfit"), _
maxMinVal:=1, _
byChange:=Range("C4:E6")
SolverAdd cellRef:=Range("F4:F6"), _
relation:=1, _
formulaText:=100
SolverAdd cellRef:=Range("C4:E6"), _
relation:=3, _
formulaText:=0
SolverAdd cellRef:=Range("C4:E6"), _
relation:=4
SolverSolve userFinish:=False
SolverSave saveArea:=Range("A33")
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。