別ファイルのユーザー定義関数を使う方法

Pocket

あるファイル「apple.xls」にユーザー定義関数「Function red(list)」があり、別のファイル「grape.xls」のマクロ「Sub purple()」で関数「red」を使いたいとします。

参照設定をすれば使えるのですが、これがなかなか曲者です。
とりあえず、手順は次の通りです。

  1. VBAエディタを開きます。
  2. メニューの ツール - 参照設定 を選択します。
  3. 「参照設定」ダイアログで参照可能なライブラリファイルの中に「VBAProject」があります。クリックすると場所にファイル名が表示されます。該当するファイルにチェックを入れてOKをクリックします。

これでできるはずなのですが「この名前は既にあるモジュール、プロジェクト、オブジェクト ライブラリで使われています。」というエラーが出ます。
意味が分かりません。ヘルプを見ても分かりません。「この名前」ってどれだ?

Excelのマクロでは、ファイル毎に「プロジェクトの下にモジュール、シート、ブックがある」という構造になっています。

このプロジェクトの名前がデフォルトではどれも「VBAProject」となっているのです。
つまり、現在、編集しようとしているプロジェクトの名前が「VBAProject」、参照しようとしているプロジェクトの名前も「VBAProject」となっているので「既に使われています」というエラーメッセージが出るのです。

そこで、プロジェクトエクスプローラで現在のプロジェクトを選択し、プロパティウィンドウで「オブジェクト名」を適当な文字列に変更します。
この準備をしてから上の手順を行えば、参照設定が正しくできます。そうすれば、別ファイルのユーザー定義関数を使うことができます。

[ 2013年12月25日 | カテゴリー: Excel | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報