Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8214 / 13644 ツリー ←次へ | 前へ→

【34554】ブック標準モジュールに書いた関数をアドイン標準モジュールに移した場合 sheboygan 06/2/6(月) 17:04 質問[未読]
【34562】Re:ブック標準モジュールに書いた関数を... 角田 06/2/6(月) 18:48 回答[未読]
【34580】Re:ブック標準モジュールに書いた関数を... sheboygan 06/2/7(火) 13:49 質問[未読]
【34590】Re:ブック標準モジュールに書いた関数を... 角田 06/2/7(火) 17:54 回答[未読]

【34554】ブック標準モジュールに書いた関数をアド...
質問  sheboygan  - 06/2/6(月) 17:04 -

引用なし
パスワード
   アドインに自分で作った関数などを登録して使っています。今、あるブックWkbk1の標準モジュールに書いていた関数Func1を、アドインの標準モジュールに移動したところ、Wkbk1では、この関数が名称未定義(#NAME?#)エラーになってしまいました。Wkbk1ではない、新しいブックなどでは、もちろんアドインからこの関数Func1が引用可能なのですが、このような事態、どう解釈していいのかわからず、悩んでいます。
また、Wkbk1でFunc1を引用しているセルを新しいブックWkbk2にコピーすると、Wkbk2では、もはや2度とこの関数Func1を使うことができません。Wkbk1と同じエラーになります。

Func1は、
Function Func1(...
のような宣言しか、していないのですが、何か対処方法はあるでしょうか?

【34562】Re:ブック標準モジュールに書いた関数を...
回答  角田 WEB  - 06/2/6(月) 18:48 -

引用なし
パスワード
   こんにちは。
↓これと同じ事ですね。
AddinBox/Q8 ワークシートに記述した「kt関数」が【#NAME? 】になってしまった。
http://www.h3.dion.ne.jp/~sakatsu/faq_res.htm#faq_q08

今、[=Func1(‥‥‥)]になっている式を外部参照式に変えてやれば良いです。

(例)
「編集/置換/全て置換」で下記のように置換してやります。
kt祝日名取得
 ↓
'C:\Windows\Application Data\Microsoft\Addins\kt関数Addin.xla'!kt祝日名取得

【34580】Re:ブック標準モジュールに書いた関数を...
質問  sheboygan  - 06/2/7(火) 13:49 -

引用なし
パスワード
   ▼角田 さん:
回答ありがとうございます。質問、兼、お礼です。
アドインの参照がこわれる件は、Windows98から、WindowsXpに移行するときに経験しました。最も環境による変化がないフォルダーと思って、また、複数のユーザに使わせる時のわかりやすい場所として、MyDocumentsの下にアドインを置いていたのですが、ご承知のように、Xpでは、Documents and Setiingsなどが途中のフォルダー名に入ってきて、Win98時代とは同じフォルダー構造にはなりません。これに懲りて、Xpでも、MyDocumentsをC:\のルートに置くか、アドインをC:\
のルートに置くか、が最善かなと思っています。\Program Files\の下などにおいておくのが正式なようですが、それでホントに、いつまでも安泰かな、と疑心暗鬼になっています。
さて、その件と、この件、同じことなのでしょうか?
先の書き込み名称で言えば、Wkbk2で、はじめ、Func1をアドインから引用できていたセルまで、Wkbk1からFunc1を引用しているセルをWkbk2にコピーした時点で、Func1が全部、名称未定義#NAMES?#になってしまいます。

【34590】Re:ブック標準モジュールに書いた関数を...
回答  角田 WEB  - 06/2/7(火) 17:54 -

引用なし
パスワード
   こんにちは。
> \Program Files\の下などにおいておくのが正式なようですが、
> それでホントに、いつまでも安泰かな、と疑心暗鬼になっています。
分析ツールは、どのバージョンでも「そこ」ですし、大事なのは
 Excel.exe からの相対パスが変わらない(同じ)
という点です。

>さて、その件と、この件、同じことなのでしょうか?
>はじめ、Func1をアドインから引用できていたセルまで、
>Wkbk1からFunc1を引用しているセルをWkbk2にコピーした時点で、
>Func1が全部、名称未定義#NAMES?#になってしまいます。
参照設定の場合でも、同じ症状を起こします。
・外部参照よりは、外部参照無しの方が優先されて、
・同じ名前のものは統一される
という仕様なのでしょう(多分)。

同じ名前のものなのに、セルによって【別物】を指し示すというのは
確かに不都合ですからね。

8214 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free