Hatena::ブログ(Diary)

consbiol のエコ日記 このページをアンテナに追加 RSSフィード

==エコロジストの consbiol がデジタルデバイスへの日々のつれづれな思いをつづる日記です。==

2012-12-17

エクセルのVBAにソルバーを組み込んでもエラーが出て使えなかったけど対処できた

 本業(生物学者)でモデルからパラメーター推定するという解析を行う必要がありまして、その際にエクセルのソルバーアドインの便利さに初めて気がつきました。エクセルでソルバー機能を使うには、エクセルの左上の丸いオフィスボタン>エクセルのオプション>アドイン>設定、で”ソルバー アドイン”にチェックを入れればOK↓

f:id:consbiol:20121217205057j:image

ただしOfficeの標準インストール時にはソルバーがインストールされません。したがって、Officeのバージョンによってはソルバーアドインのインストール時にDVD-ROMが必要になるかもしれません。

 ソルバーをエクセルのVBAに組み込んで、繰り返し計算させてやろうとしました。VBAにおけるソルバー機能に関する関数は、ソルバー使った時に記録されるマクロ(「マクロの記録」機能をONにすれば作業が自動でVBAに記録される)を見ればよく分かります。

 早速、ソルバーを含むプログラムを書いてみたのですが、こんなエラーが出て使えません↓

f:id:consbiol:20121217205656j:image

コンパイルエラー: SubまたはFunctionが定義されていません。”

かなり悩みましたが、VBAでソルバーを使うには、VBAの方で使用を許可する必要があるようです。

方法は簡単。(エクセルのタグを右クリックなどして)コード画面>ツール>参照設定、で”SOLVER”にチェックを入れるだけ。

f:id:consbiol:20121217205923j:imagef:id:consbiol:20121217210257j:image

やっと分かって一安心です。

デフォルトでVBAでソルバーを使えるように自動でしてくれれば、悩まなくても済んだのに…と思いました。