|
ある特定のプロシージャを、全てのブックのモジュールからCall出来るようにしたいと思い下記のようにしました。予想通り動いたのですが、使用中に、ファイルが破損され、ファイルの修復手続きに入ってしまいました。どうやらやってはいけないことをしてしまったようです。当初の目的を達成するための正しい方法をご教示願います。
1.プロシージャを、VBAProject (Personal.xls)のモジュールに書き込む。
2.「VBAProject(Personal.xls)」の「VBA Project」を、VBA Projectのプロパティで「共有プロシージャ」と書き換え。
3.他のブックに対応するVBAProjectで、「ツール‐参照設定」で「共有プロシージャ」にチェックのうえ、そのブック内のモジュールで、「共有プロシージャ(Personal.xls)内のモジュールに書かれた上記1のプロシージャをCALL。
なお、上記のようにしたのは以下の理由からです。
A.マクロを記録する際に、マクロの保存先を「個人用マクロブック」に指定すると、そのプロシージャがVBAProject(Personal.xls)のモジュールに書き込まれ、エクセルを開けばいつも使えるようになっている。
B.他のブックのプロシージャをコールするためには、上記2〜4のような手続きをすればよいと、市販の手引書に書いてあった。
今回は上記を組み合わせて、Bの手続きを、VBAProject(Personal.xls)に適用してみた次第です。なお、2の手続きの中で、なぜVBAProjectを別名に書き換える必要があるのかは不明です。書き換えないと、「ツール‐参照設定」で表示されるリスト中に、VBAProject の表示が複数出てきてしまい、どこにチェックをつけたらよいのか判らないという問題があったため、書き換えるのかな〜、とは思っています。
|
|