• ベストアンサー
  • すぐに回答を!

VBA エクセル 2003作成→2007実行について

コマンドボタンを押すとソルバーが実行されるものを2003で作成したのですが、2007で実行しようとすると、 コンパイルエラー プロジェクトまたはライブラリが見つかりません。 と表示されて実行できません。 ご教授お願いします。 Private Sub CommandButton5_Click() SolverOk SetCell:="$E$176", MaxMinVal:=2, ValueOf:="0", ByChange:= _ "$D$173:$I$173,$H$167,$F$129:$J$129,$G$130:$J$130,$H$131:$J$131,$I$132:$J$132,$J$133" SolverSolve End Sub

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数419
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • myRange
  • ベストアンサー率71% (339/472)

  Solver.xla が参照されているかチェック VBE > 「ツール」 > 参照設定 以上です。  

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 助かりました!!

関連するQ&A

  • VBAでソルバーを停止せずに動かすには

    こんにちは。 VBAで、ソルバーを含んだコードを書いていますが、実行の時にソルバーで計算している度にメッセージボックスが表示されて、OKを押す必要があります。メッセージが表示されない、またはOKが自動的に押されるようにするにはどうすればいいでしょうか。コードは、次のようになっています。 Range("E164").Value = "0.1" Range("E165").Value = "0" SolverOk SetCell:="$E$25", MaxMinVal:=3, ValueOf:="2130",  ByChange:="$C$38" SolverSolve Range("AE7").Value = Range("J3").Value Range("E164").Value = "0.1" Range("E165").Value = "0.1" SolverOk SetCell:="$E$25", MaxMinVal:=3, ValueOf:="2130", ByChange:="$C$38" SolverSolve Range("AE8").Value = Range("J3").Value Range("E164").Value = "0.1" Range("E165").Value = "0.2" Then SolverOk SetCell:="$E$25", MaxMinVal:=3, ValueOf:="2130", ByChange:="$C$38" SolverSolve Range("AE9").Value = Range("J3").Value Range("E164").Value = "0.1" Range("E165").Value = "0.3" SolverOk SetCell:="$E$25", MaxMinVal:=3, ValueOf:="2130", ByChange:="$C$38" SolverSolve Range("AE10").Value = Range("J3").Value ・・・ などの繰り返しになっています。 どうぞよろしくお願いいたします。

  • EXCELマクロを実行したときのコンパイルエラー

    EXCELでSolverをマクロで実行出来るようにしたいのですが、 マクロの記録のボタンをクリック→ツールでソルバーを選択→目的セル、目標値、変化させるセルを選択→実行→OK→記録終了で、マクロを作成し、 マクロを開いて実行をすると、コンパイルエラーが表示され、「subまたはFunctionが定義されていません」と表示されて止まってしまいます。ちなみに、EXCEL2003でも2007でも同じ状況です(ToT)。 マクロのソースは下記のようになっていて「SolverOk」のところがblueに反転してとまっています。 どなたか対処方法をご存知でしたら教えて頂けないでしょうか?よろしくお願いいたします(m_m) Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2011/9/13 ユーザー名 ' ' SolverOk SetCell:="$E$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$E$7" SolverSolve End Sub

  • エクセルマクロ:ソルバーの反復計算を中止する

    マクロを使ってソルバーを用いた計算をしているのですが、反復回数が制限に達した時、自動的に中止して次の計算に進みたいのですが、どのように記述すればよろしいでしょうか。 現在は以下のような記述です。 SolverOk SetCell:="$F$33", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$27:$O$27" SolverSolve Userfinish:=True 宜しくお願いいたします。

  • VBAでの、マクロ参照をするソルバー

    ソルバー中の変数が、マクロを実行した値の場合はどのようにすればいいのでしょうか? たとえば操作するセルを変えても、あるマクロを実行しないと目的のセルが変わらない場合です。 solversolveのshowrefを利用して以下のように書きましたが、最適化はされたと表示されますがマクロを実行してくれませんでした。 Sub Macro() SolverReset SolverOk SetCell:="$C$17", MaxMinVal:=1, ValueOf:="0",   ByChange:="$B$17:$B$18" SolverOptions MaxTime:=900, Iterations:=900, Precision:=0.01, AssumeLinear:= _ False, StepThru:=True, Estimates:=1, Derivatives:=1, SearchOption:=1, _ IntTolerance:=10, Scaling:=False, Convergence:=0.1, SolverSolve UserFinish:=False, ShowRef:="macro1"

  • 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

  • マクロでソルバーを使えますか?

    VBAは未経験です。エクセルでソルバーをマクロで記録し、実行しようとしたらエラーメッセージが出てしまいました(コンパイルエラーsubまたは functionが定義されていません)。 マクロにソルバーを組み込むこと自体ができないのでしょうか? 宜しくお願いします。 Range("E4:M4").Select Selection.Copy Range("E11").Select ActiveSheet.Paste Range("E4:M4").Select Selection.Copy Range("E12").Select ActiveSheet.Paste SolverOk SetCell:="$E$7", MaxMinVal:=3, ValueOf:="20", ByChange:="$D$5:$K$5" SolverSolve Range("E4").Select End Sub

  • エクセルのマクロでのソルバーの使い方に関して教えてください。

    エクセルのマクロでのソルバーの使い方に関して教えてください。 下記のようなソルバーを含むマクロを組んでいます。(一部です。) SolverReset SolverOk SetCell:="$B$10", MaxMinVal:=3, ValueOf:="0", ByChange:="$M$46" a = SolverSolve(True) If a = 0 Then SolverFinish KeepFinal:=1 Else SolverFinish KeepFinal:=0 End If ソルバーを起動させ、"B10"が0になるように計算させ、 ソルバーの返り値をaに入れます。このとき、a=0の場合は、つまり最適値を得た場合のみ, 解を保存したく、a=0の場合、SolverFinish KeepFinal:=1で、保存するようにしています。  しかし、実際は、a=0の場合でも解を保存してしまい、元の値に戻せていません。  最適値を得られなかった場合に、元の値に戻したい場合は、どのように記載すれば良いでしょうか?  よろしくお願いします。

  • 【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

  • マクロの自動記録

    Excelのマクロ自動記録に関する質問です。 ソルバーを繰返し含む処理をマクロの自動記録で実行したいのですが、Excelのシート上で1つづつ手で実行すると問題なく処理出来ている手順を自動記録して実行すると“コンパイルエラー:SubまたはFunctionが定義されていません”とエラーが出ます。 下記の“SolverOk”の部分に問題があると表示されます。 Range("D19").Select ActiveCell.FormulaR1C1 = "180" Range("D19").Select Selection.Copy Range("J19").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("D24").Select Application.CutCopyMode = False Selection.Copy Range("J22").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False SolverOk SetCell:="$M$18", MaxMinVal:=3, ValueOf:="0", ByChange:="$D$19" SolverSolve   ---   --- どうすれば解決できるか教えて下さい。 よろしくお願いします。

  • エクセル ソルバー セル参照をVBAで

    エクセル ソルバーのセル参照をVBAコードで変更しようとしていますが,複数のセル参照がうまくいきません. まず,マクロの記録でセルc3の値を2にするようにC2とC4の値を変更するというコードを記録させました. SolverOk SetCell:="$C$3", MaxMinVal:=2, ValueOf:="6",ByChange:="$C$2,$C$4" 次にセル参照をコードで操作するために"$C$3"の部分はcells(3,3)と置き換えてもうまく起動したのですが,"$C$2,$C$4"の部分は,cells(2,3),cells(4,3)と置き換えると, コード内でエラーメッセージ「コンパイルエラー,修正候補,名前付き引数」とでます.この場合どう修正すればいいのでしょうか. コードでセル参照を操作しようという動機は,例えば「アクティブセルから下のセルを順に3つ参照するよう」など,場合に応じてマクロを指示するためですが,ためしに試みた時点で上記内容でつまずいてしまいました. よろしくご教示お願いします.