- ベストアンサー
エクセルソルバーのセル参照をVBAで変更する方法は?
- エクセルソルバーのセル参照をVBAコードで変更する方法について説明します。
- セル参照を操作するためには、cells()関数を使用しますが、複数のセル参照を指定する際には注意が必要です。
- エラーメッセージ「コンパイルエラー,修正候補,名前付き引数」と表示される場合は、セル参照の指定方法を修正する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下のように修正してみてください Range(cells(2,3),cells(4,3))
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。#2です。 別にユーザー任意でやっているものに、問題があるはずはありません。 ただ、シナリオにして保存しておくとか、選択値や数式自体をマクロでするなり方法はあるかと思うだけです。
お礼
ご回答ありがとうございました.
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >例えば「アクティブセルから下のセルを順に3つ参照するよう」 通常、ActiveCellに対して、Solver の引数を入れるような書き方はありえないと思います。それは、ByChange の引数は、それ自体がワークシート上の計算式で、引数になっているはずです。単独では成立しないと思います。 あえて、それは無視して回答します。 Dim rng As Range Set rng = Range("C2,C4") '"$C$2,$C$4" ' Set rng = ActiveCell.Resize(4) 'アクティブセルから下に3つ rng.ClearContents Solverreset 'SOLVER.Reset_all 'Ex2003 SolverOk SetCell:="$C$3", MaxMinVal:=2, ValueOf:="6", ByChange:=rng.Address SolverSolve Set rng = Nothing
お礼
ご回答ありがとうございます. ご指摘の点ですが,Activecellを使おうとしたのは, 目的変数,説明変数,制約式の計算式が1つの列にあり,この列を複数の列にコピーして,説明変数の初期値が違う計算をいくつも実行する場合,どの列の計算をするのかの参照にActivecellのセル番地を利用しようという意図です. この場合の問題点があれば,お時間があればご指摘くだされば助かります.
お礼
ご回答,ありがとうございます. 作動確認し,うまくいきました. ありがとうございました.