• ベストアンサー

マクロの自動記録

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   ---   --- どうすれば解決できるか教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

「SolverOk 関数」をヘルプで調べてください。 詳しく書いていますよ。 あと、Solver.xls でなくて Solver.xla ですよ。 ヘルプの内容: この関数を使う前に、ソルバー アドインへの参照を設定しておいてください。Visual Basic モジュールをアクティブにした状態で、[ツール] メニューの [参照設定] をクリックし、[参照可能なライブラリ ファイル] の [Solver.xla] チェック ボックスをオンにします。このチェック ボックスが [参照可能なライブラリ ファイル] に表示されない場合は、[参照] をクリックしてから、Office をセットアップしたフォルダの \Office\Library にある Solver.xla を開きます。 Officeをデフォルトでインストールしたとは、下記を指定します。(Offce2000) C:\Program Files\Microsoft Office\Office\Library\Solver.xla

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

http://www.komiyama.t.u-tokyo.ac.jp/~koyama/html/VBA/VBA_solver.html#SolverOk に解説があります。SolverOk以外の解説もあり参考になります。

hirombo
質問者

お礼

参考URL有難う御座います。 Excelはとても奥が深く何か新しいことをやろうとするとなかなか思うように進めません。 教えてもらいながらボチボチやります。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

No.2ですが・・・ あっ、Solverフォルダの中です。 Officeをデフォルトでインストールしたとは、下記に(Offce2000) C:\Program Files\Microsoft Office\Office\Library\Solver\Solver.xla です。

hirombo
質問者

お礼

参照可能なライブラリファイルに Solver.xla をセットすると Solver.xls と表示されました。 お陰様でうまく行きました。 有難う御座いました。

回答No.1

VBEの[ツール]→[参照設定]で solver.xls にチェックを入れてください。

hirombo
質問者

補足

早速の回答ありがとうございます。 >VBEの[ツール]→[参照設定]で >solver.xls にチェックを入れてください。 [参照設定]の中に solver.xls を見つけることが出来ません。 Microsoft Excel 9.0 Object Libraryにはチェックがついていますが、これとは違いますよね? もう少し詳しく説明をお願いします。

関連するQ&A