• ベストアンサー

excelのソルバーをVBAで複数行繰り返したい

目的セル  A1 変化させるセル  B1:E1 から始めて、A2,B2:E2、A3,B3:E3・・・ というように行を一列ずつずらして繰り返したいと思いプログラミングの知識とか全然ないんですが、あちこち調べて、 Sub Macro1() Dim x As Integer For x = 1 To 5 SolverOk SetCell:="Cells(x,1)", MaxMinVal:=3, ValueOf:="1", ByChange:="Range(Cells(x,2),Cells(x,5))" SolverSolve Userfinish:=True  Next x End Sub というところまで作ってみたんですが、実行してみると一行目は変わるもののそれ以降が変化しません。 理由がまったくわからないんですが、どなたかおかしなところがわかる方お教えくださいm(__)mm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

ソルバーは使った事がありません。 提示されたコードを見ると、引数の設定が、"(ダブルクオーテーション)で挟まれています。 これでは単なる文字列ということになってしまいます。 セル番地を入れればよいのでしょうか? SolverOk SetCell:="Cells(x,1)", MaxMinVal:=3, ValueOf:="1", ByChange:="Range(Cells(x,2),Cells(x,5))" を SolverOk SetCell:=Cells(x, 1).Address, MaxMinVal:=3, ValueOf:="1", ByChange:=Range(Cells(x, 2),Cells(x, 5)).Address とするとどうなるでしょうか?

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ソルバーのマクロは、もともと旧マクロですから、それをVBAで行うには、ちょっとしたコツが必要なはずですが、単に、クォーテーションの囲んだ部分を、Address に変えてそれで出来るようになれば、こちらからのアドバイスは必要ありません。単に、記録マクロだけではうまくいかないような気がしますが、ご質問では、数式などの情報がありませんので分かりません。 >変化させるセル  B1:E1 仮に出来ても、そのまま変化されていったら、5回やっても、同じ結果が出るのではないかと思います。

関連するQ&A