プロが教えるわが家の防犯対策術!

目的セル  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

A 回答 (2件)

ソルバーは使った事がありません。



提示されたコードを見ると、引数の設定が、"(ダブルクオーテーション)で挟まれています。
これでは単なる文字列ということになってしまいます。
セル番地を入れればよいのでしょうか?

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

とするとどうなるでしょうか?
    • good
    • 10

こんばんは。



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

>変化させるセル  B1:E1

仮に出来ても、そのまま変化されていったら、5回やっても、同じ結果が出るのではないかと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A