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

ソルバーの実行後にブックを保存すると、ソルバーで指定したパラメータも保存されますが、ブックと共に保存されるパラメータセットは1つだけです。複数のパラメータセットを保存する手順は次の通りです。とあり、ツール→ソルバー→オプションをクリック→モデルの保存とあるのですが、ここで、パラメータを保存する領域を指定するというのが、どこの部分を指定すればいいのかわかりません。いまいち、複数のパラメータ保存の手順がわかってない感じなのですが、どなたか教えてください。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

》 …複数のパラメータセットを保存する手順は次の通


》 りです。とあり、ツール→ソルバー→オプションを
》 クリック→モデルの保存とある…

「とあり」とか「とある」とは、何処に書いてあるのですか?
私はソルバー勉強中の未熟者なので、教えてください。


》 パラメータを保存する領域を指定するというのが、
》 どこの部分を指定すればいいのかわかりません

「[モデル範囲] ボックスに、問題モデルを保存する縦方向の空白セル範囲の先頭セルの参照を入力します」と、ヘルプの「ソルバー問題モデルを保存する」の最後のステップに書いてありますが、的を外してますか?
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのソルバーについて教えてください

いつもお世話になっています。

エクセルでソルバーを実行すると結果を表示するウインドウのところで「シナリオの保存」というボタンがありますが(2003も2007も同様)、これはどのようなときに使用するのでしょうか?

ご存知の方がいらっしゃいましたら教えてくださると嬉しいです。どうぞよろしくお願いします。

Aベストアンサー

Excel2003まではツールメニュー,Excel2007以降ではデータタブのWhatIf分析▼の中に「シナリオ」があります。

作成例:
A1に「単価」B1に数値
A2に「個数」B2に数値
A3に「合計」B3に=B1*B2
などのように作成し,B1とB2にてきとーに数値を記入する(変化するセル)と,B3の「数式セル」の計算結果が現れます。

B1:B2を選択,シナリオを登録すると,登録した名前によって「数字のセット」をブックに保存できます。


即ちソルバーを実行して得られた「変化するセルに入った具体的な数字のセット」をシナリオとして登録しておくことで,その後変化するセルの数字を何か動かしたあとでも,ソルバーの結果を直ちに再現できます。
より具体的な展開としては,制約条件や「変化しない数字」を変更したなどでソルバーの「実行条件を変更」した都度,その旨のシナリオを(前述例では「ソルバーで変化させたセルと,計算条件として変化させた「変化しないセル」を併せて)保存しておくことで,結果を保存し再度容易に呼び出せるようになります。

Q【Excel】マクロにソルバーを組み込んだ時の対処方法

下記のようにマクロを組みましたが、ソルバーが解を見つけた時にいちいちOKをクリックしないと貼り付けに進みません。以下の作業を何回も繰り返すのですが、すべて自動的に行くにはどのように修正すればよろしいでしょうか?
宜しくお願いいたします。

Sheets("optimise").Select
ActiveWindow.ScrollRow = 1
Range("B7").Select
Selection.Copy
Range("E7").Select
ActiveSheet.paste
SolverOk SetCell:="$E$35", MaxMinVal:=1, ValueOf:="0", ByChange:="$E$29:$R$29"
SolverSolve
Range("E29:R29").Select
Selection.Copy
Sheets("Table").Select
Range("G7").Select
ActiveSheet.paste
Application.CutCopyMode = False
Sheets("optimise").Select
Range("B8").Select
Selection.Copy
Range("E7").Select
ActiveSheet.paste
SolverOk SetCell:="$E$35", MaxMinVal:=1, ValueOf:="0", ByChange:="$E$29:$R$29"
SolverSolve
Range("E29:R29").Select
Selection.Copy
Sheets("Table").Select
Range("G8").Select
ActiveSheet.paste

下記のようにマクロを組みましたが、ソルバーが解を見つけた時にいちいちOKをクリックしないと貼り付けに進みません。以下の作業を何回も繰り返すのですが、すべて自動的に行くにはどのように修正すればよろしいでしょうか?
宜しくお願いいたします。

Sheets("optimise").Select
ActiveWindow.ScrollRow = 1
Range("B7").Select
Selection.Copy
Range("E7").Select
ActiveSheet.paste
SolverOk SetCell:="$E$35", MaxMinVal:=1, ValueOf:="0", ByChange:="$E$29:$R$29"
S...続きを読む

Aベストアンサー

ユーザーの入力を求めるダイヤログのことでしょうか?
DisplayAlert は、Application(Excelの意味)属性ですから、役には立たないと思います。
'SolverSolveの部分を

SolverSolve Userfinish:=True
としてみてください。

それから、

これは、まとめられると思います。
Sheets("optimise").Select
ActiveWindow.ScrollRow = 1
Range("B7").Select
Selection.Copy
Range("E7").Select
ActiveSheet.paste


Sheets("optimise").Activate '(Selectでも可能です)
Range("B7").Copy Range("E7")
暇があったら、試してみてください。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

QエクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?

ワークシート関数で書けば
=IF(OR(F18=0,AND(F15>0,F16>0)),TRUE)です。
これをVBAで書こうとして

If Sheet1.Range("F18") = 0 Or Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then
MsgBox True
Else
MsgBox False
End If

とやってみたのですが、正しくないようです。
どのように書けばいいのでしょうか?

Aベストアンサー

>とやってみたのですが、正しくないようです。

式は正しいと思いますよ

ANDとORは、ANDが先に演算されます。/*と+-では、/*が先に演算されるようなものです。

でも、わかり易くするために、#1のかたのように括弧をつけるほうが良いですね。

Qexcelのソルバーを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

Aベストアンサー

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

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

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

とするとどうなるでしょうか?

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

Qセル番号を返す関数

エクセルで、セル番号を返す関数はありますか??
セルの内容ではなくて、番号です。(A1、B3など)
調べてみましたがなかなか見つからなかったので、
わかる方教えてください。
宜しくお願い致します。

Aベストアンサー

文字として"C4"を返す。
=ADDRESS(ROW(C4),COLUMN(C4),4)

式を入力したセルの位置を文字列で返す。
=ADDRESS(ROW(),COLUMN(),4)

ADDRESSの3つ目の引数を変えると
$C$4
$C4
C$4
C4
の4つの形に出来ます。

Qエクセルで、列内が同じ名前を集計する方法は?

エクセルで以下のような表を作成したとします。

      A列   B    C    D
 1行   名前   項目   金額
 2    すずき  あいう  100
 3    すずき  かきく  200
 4    すずき  さしす  450
 5    さとう  あいう  150
 6    さとう  さしす  200
 7    はやし  あいう  250 
 8    はやし  かきく  170
 9    はやし  たちつ  980

B列の名前が同じ者の、金額の合計をD列に出したいのです。
D4に すずきの合計 750、D6にさとうの合計 350、
D9にはやしの合計 1150  というふうに。
全部で100人分位、データ行数は15000ほどあるのですが
これをさっとできるようにはどのようにしたら良いのでしょうか?

Aベストアンサー

次の方法は如何でしょうか。
D2に=IF(COUNTIF(A:A,A2)=COUNTIF($A$2:A2,A2),SUMIF(A:A,A2,C:C),"")を入力→D2を選択→フィルハンドル(D2セル枠右下の■)をダブルクリック
但し、C列途中に空白がある場合、その直前までしかコピーされませんので、空白セル前のセルを下方向にコピー後、同様にフィルハンドルをダブルクリックし下さい。


人気Q&Aランキング