• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル ソルバー セル参照をVBAで)

エクセルソルバーのセル参照をVBAで変更する方法は?

このQ&Aのポイント
  • エクセルソルバーのセル参照をVBAコードで変更する方法について説明します。
  • セル参照を操作するためには、cells()関数を使用しますが、複数のセル参照を指定する際には注意が必要です。
  • エラーメッセージ「コンパイルエラー,修正候補,名前付き引数」と表示される場合は、セル参照の指定方法を修正する必要があります。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

以下のように修正してみてください Range(cells(2,3),cells(4,3))

accordion
質問者

お礼

ご回答,ありがとうございます. 作動確認し,うまくいきました. ありがとうございました.

その他の回答 (2)

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

こんにちは。#2です。 別にユーザー任意でやっているものに、問題があるはずはありません。 ただ、シナリオにして保存しておくとか、選択値や数式自体をマクロでするなり方法はあるかと思うだけです。

accordion
質問者

お礼

ご回答ありがとうございました.

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

こんにちは。 >例えば「アクティブセルから下のセルを順に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

accordion
質問者

お礼

ご回答ありがとうございます. ご指摘の点ですが,Activecellを使おうとしたのは, 目的変数,説明変数,制約式の計算式が1つの列にあり,この列を複数の列にコピーして,説明変数の初期値が違う計算をいくつも実行する場合,どの列の計算をするのかの参照にActivecellのセル番地を利用しようという意図です. この場合の問題点があれば,お時間があればご指摘くだされば助かります.

関連するQ&A