• 締切済み

マクロの中にソルバーを組むやり方がわからなくてこまっています。

朝早くに失礼します。 ソルバーをマクロの中に組みたいのですが、やり方がよくわかりません。ソルバーは 目的セル $DR$3 変化させるセル $DR$6:$DX$7 制約条件 $DR$6:$DX$7>=0      $DR$8<=$BD$9 $DS$8<=$BC$10 $DT$8<=$BE$10 …      $DR$8=0 … このような感じなのですが、これを 「目的セル $DR$13  変化させるセル $DR$16:$DX$17  制約条件 $DR$16:$DX$17>=0      $DR$18<=$BD$19 $DS$18<=$BC$20 $DT$18<=$BE$20 …      $DR$18=0 …                    」 「目的セル $DR$23  変化させるセル $DR$26:$DX$27  制約条件 $DR$26:$DX$27>=0      $DR$28<=$BD$29 $DS$28<=$BC$30 $DT$38<=$BE$30 …      $DR$38=0 …                    」 のように10セルずつ移動させながら、300回ほど繰り返したいのですがが、どのようにしたらよいでしょうか?

みんなの回答

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

こんにちは。 私は、このご質問は、難しいなって思っています。 今、マクロは、どこ辺りまで出来ているのですか? 最初から、コードを出してほしいといわれると敬遠したくなるのです。 記録マクロは試してみましたか? しかし、記録マクロでは、ソルバーは出来ません。記録マクロでは、一方通行ですから、設定の仕方とか、いくつかポイントはあるのです。 ただ、記録マクロでひとつ作ってみて、そこから発展をさせるのですが、ご自身でどこまでやっているか教えてください。

aokinoko
質問者

お礼

返答ありがとうございます。 時間が掛かりましたが、何とか解決しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • この問題はソルバーを使って解くと考え、目的セルを「$D$7」とし、目的

    この問題はソルバーを使って解くと考え、目的セルを「$D$7」とし、目的値を「最大値」、変化させるセルを「$B$8:$C$8」に設定しました。ここまではよろしいでしょうか。制約条件には何を入力すればいいのでしょうか?自分なりに条件をいれてみましたが、どうしても答えが0にしかならないのです。 どなたか教えてください。

  • Excelのソルバーについて

    Excelでソルバーの制約条件をつけるとき セル参照と制約条件の間に、演算子を決めるところがあり そのリストを見ると、「データ」(隠れてしまっているので・・たぶんデータなんだと思うのですが) というのがあり、それを選ぶと制約条件が「バイナリ」となりますが この「バイナリ」というのはどのような制約条件のことなのでしょうか? よろしくお願いいたします。

  • ソルバーの解が最適値を示さない

    タイトルの通り、エクセルのソルバー機能を使用してある反応の速度係数と算出しようとしたところ、フィッティングされません。 最小二乗法によりソルバーを動かすと添付図のように最適化条件を満たししていますと出るのですが、どう見てもあっていません。 ソルバー機能上このようになるのか、フィッティング関数の性質上このようになってしまうのかがわかりません。 どなたかこの症状に詳しい方がいらっしゃれば、ご教示いただきたいです。 下記想定で行っています 実験値セル:B3*exp(-B4*A6)*{1+RAND()/5} 計算値セル:C3*exp(-C4*A6) 残差:{(実験値セル)-(計算値セル)}^2 残差平方和:SUM(D列) ソルバー条件 目的セル:E6(残差平方和)を最小値 変数セル:C3:C4 制約なし(制約なしを非負数とするのみ)

  • ソルバーのマクロ組み込みについて

    2つ質問がございます。 一つはExcel2003にてソルバーをマクロに組み込みたく、Visual Basicのツール>参照設定>参照にいきsolver.xlaのファイルを探せど見つからずに困っております。 二つ目は、過去の質問(質問者:Curtis様。参照:http://okwave.jp/qa350463.html)で 「Excel2000上でソルバーを使って関数のパラメータの最適値を求める作業をできるだけ自動的にできないでしょうか。 例えば、関数が一つだとしても、それを当てはめるべきデータのリストが100個あれば、ソルバーを手作業で100回実行しなければなりません。特に同じワークシートのなかで全ての作業を済ませようとすると、1回ごとに「目的セル」や「変化させるセル」を指定しなければなりません。当てはめを行うワークシートを独立に用意すればソルバーの実行自体は簡単になるかもしれませんが、そこにデータリストをコピーし結果をどこかに保存する手間がかかります。さらに、エクセルのマクロではソルバーは使えないと聞いております。なんとかならないものでしょうか。」 とありますが、上記の内容をVBAでプログラムを組み、自動化することは実際可能なのでしょうか?可能であればどのように組むのでしょうか? ご面倒とは思いますがよろしくお願い致します。

  • エクセルのソルバー機能について

    ソルバー機能の制約条件の付け方についてお聞きします。制約条件のセル参照に演算子、または関数は使えるのでしょうか? つまり、普通なら$D$6:$E$6と指定するところを$D$6+$E$6などのように数式にしてしまうといったような感じです。 実際に入れてみると、「セル参照が正しくありません」というメッセージが出てきます。 つまり、だめってことでしょうか・・・ もしわかる方がいらっしゃればよろしくお願い致します。

  • エクセルのソルバーの制限条件

    化学関係の計算でエクセルのソルバーを使って最適解を求めようと思って使ってみました。 式自体は二つ。 変数は3つ(α、β、x)です。 (数学が専門でないので、変数と言って良いのかわかりませんが、要は文字です。) このうちxを決めるとα、βは自動的に決定されます。 問題では、α+βが最大となるxの値を求めたいのです。 二つの式はその3つの変数の絡んだ式で、両方とも=10となります。 xは4以下です。 一応、化学の計算ですので、すべてにおいてマイナスはありえません。 この条件でソルバーを使おうと思って、 α、β、xをあらわす空のセルを設けて、二つの式を別のセルに書きました。 もちろん、割り算が絡んでるのでエラーですが。 さらに、α+βのセルも作りました。(ココにはα+βの式が入力されています。) 目的セル→α+β 変化させるセル→x ここまでは問題ないのですが、制限条件で、 xを4以下や、二つの式を=10と言うのがエラーになるようです。 エクセルのトラブルシューティングでは、以下のように書かれていました。 [制約条件の追加] または [制約条件の変更] ダイアログ ボックスに無効な名前や数式を入力したか、または [制約条件] ボックスに"整数"や"バイナリ"を入力しました。制約条件を整数にするには、比較演算子の一覧の [区間] をクリックします。バイナリを設定するには、[データ] をクリックします。 どういう意味でしょうか? 比較演算子の一覧というのはどこにあるのでしょうか? 文がめちゃめちゃですが、よろしくお願いします。

  • Excelのsolver実行の手間を省きたい

    Excel2000上でソルバーを使って関数のパラメータの最適値を求める作業をできるだけ自動的にできないでしょうか。 例えば、関数が一つだとしても、それを当てはめるべきデータのリストが100個あれば、ソルバーを手作業で100回実行しなければなりません。特に同じワークシートのなかで全ての作業を済ませようとすると、1回ごとに「目的セル」や「変化させるセル」を指定しなければなりません。当てはめを行うワークシートを独立に用意すればソルバーの実行自体は簡単になるかもしれませんが、そこにデータリストをコピーし結果をどこかに保存する手間がかかります。さらに、エクセルのマクロではソルバーは使えないと聞いております。なんとかならないものでしょうか。(OS:WindowsME)

  • エクセルを使ってのシミュレーション

    連立方程式をエクセルで解き,シミュレーションをしたいと思ってます.最初の状態としては制約条件をすべてゼロに等しくなるようにしています(そのため,制約条件を書き込んだセルは0になります).その状態から,パラメータを変化させて,解きたいのですが,パラメータの数値を初期値と変えてしまうと制約条件のセルが0にどうしてもならないことになってしまいます.どのようにシミュレーションをしたら宜しいでしょうか?

  • コンボボックスに固定値をセットして表示する方法

    お世話になります。さっそくですが、質問です。 現在、VB.NET 2008で開発を行ってます。 質問の目的は、 実行プログラムにおいて、 画面に配置したコンボボックスをクリックした際、 以下の値を選択肢として表示させることです。 (【性別】の選択肢) ・男性 ・女性 Form_Load()時に、コンボボックスに上記の値を固定でセットしています。 ------------------------------------------------- Public Function getDataField1() As DataSet '変数宣言 Dim ds As DataSet Dim dt As New DataTable Dim dr As DataRow dt.Columns.Add("DataTextField", GetType(String)) dt.Columns.Add("DataValueField", GetType(String)) '空白セット dr = dt.NewRow() dr("DataTextField") = "      " dr("DataValueField") = ",,,," dt.Rows.Add(dr) dr = dt.NewRow() dr("DataTextField") = "1" dr("DataValueField") = "男性" dt.Rows.Add(dr) dr = dt.NewRow() dr("DataTextField") = "2" dr("DataValueField") = "女性" dt.Rows.Add(dr) ds = New DataSet ds.Tables.Add(dt) Return ds End Function Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ds As DataSet '性別の取得 ds = getDataField1() For i As Integer = 0 To 2 cmb_性別.Items.Add() ds.Tables(0).Rows(i).Item("DataValueField").ToString() Next i End Sub ------------------------------------------------- 上記内容の場合、コンボボックスをクリックしても 選択肢としては"空白"しか表示されません。 セットした値をコンボボックスの選択肢として表示させる方法を ご存知の方がいらっしゃいましたら、ご教授願えますでしょうか?

  • 円管内の層流について

    円管内の層流についてなんですが、式を証明していくと、μ/r・d/dr(r・du/dr)=dp/dxという式が出てくるんですが、私が計算していきますと、μ/r・d/dr(u+r・du/dr)=dp/dxとなるんですが、u=0として良いのでしょうか?として良いのなら、なぜ、なんでしょうか?どなたかお願いします。条件は、速度は流れ方向に変化しないため、v=0,かつ、uはx方向に変化しないためu=u(r),そして、定常流れ、かつ、体積力がないと仮定しています。お願いします。

専門家に質問してみよう