2009-07-15

Excel VBAから分析ツールやソルバーを使う

アドインの設定で
□ソルバー
□分析ツール
□分析ツール - VBA
にチェックをつけて、マクロの記録を使って分析ツールを使った場合の操作をマクロに記録すると
Application.Run "ATPVBAEN.xla!Random",...
のようになります。分析ツールの中のどれを使うかによってRandomの部分は別のものに変わります。それはいいとして、この記録したばかりのマクロを実行すると「マクロが見つかりません」というエラーが出ます。
解決法がなかなか見つからなかったのですが、マクロを実行したときにエラーが記録されるデータ分析ツールを参考にして
Application.Run "'ATPVBAEN.xla'!Random"
のようにATPVBAEN.xlaをシングルクオート'で括る事で実行できました。

続いてソルバーに挑戦。
まず参照設定でソルバーを登録します。
Visual Basic Editorのツールの参照設定をクリックします。

そこにSOLVER.XLSがあればよいのですが、無いので参照をクリックします。

C:\Program Files\Microsoft Office\Office(バージョンによって違う数字)\Library\Solverを指定してファイルの種類をMicrosoft Excel Files (*.xls;*.xla)を選びます。

すると参照設定の一覧の中にSOLVER.XLSが現れてチェックされているのでOKを押します。

これだけだと

このようなエラーが出るので
Application.Run "Solver.xla!Auto_Open"
の一行を追加します。答えてねっと 投稿全文表示を参考にしました。
これで一応動きますが、確認のメッセージが表示されて自動化出来ないので、
SolverSolve

SolverSolve Userfinish:=True
に変更します。

これで一応VBAから分析ツールやソルバーを使うことが出来るようになりましたが、ここまで手間をかけるならCとかRを使った方が手っ取り早そうです。

0 件のコメント: