質問: エクセル ソルバー セル参照をvbaで エクセル ソルバーのセル参照をvbaコードで変更しようとしていますが,複数のセル参照がうまくいきません. まず,マクロの記録でセルc3の値を2にするようにc2とc4の値を変更するというコードを記録させました. solverok setcell:="$c$3", maxminval:=2, valueof:="6",bychange:="$c$2,$c$4" 次にセル参照をコードで操作するために"$c$3"の部分はcells(3,3)と置き換えてもうまく起動したのですが,"$c$2,$c$4"の部分は,cells(2,3),cells(4,3)と置き換えると, コード内でエラーメッセージ「コンパイルエラー,修正候補,名前付き引数」とでます.この場合どう修正すればいいのでしょうか. コードでセル参照を操作しようという動機は,例えば「アクティブセルから下のセルを順に3つ参照するよう」など,場合に応じてマクロを指示するためですが,ためしに試みた時点で上記内容でつまずいてしまいました. よろしくご教示お願いします.
回答: こんにちは。 >例えば「アクティブセルから下のセルを順に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