Excel VBA質問箱 IV

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

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


2575 / 13646 ツリー ←次へ | 前へ→

【67138】引数付きのアドイン関数の呼び方 noah_noah 10/11/9(火) 18:12 質問[未読]
【67139】Re:引数付きのアドイン関数の呼び方 momo 10/11/9(火) 18:35 発言[未読]
【67140】Re:引数付きのアドイン関数の呼び方 noah_noah 10/11/9(火) 18:56 回答[未読]
【67141】Re:引数付きのアドイン関数の呼び方 SK63 10/11/9(火) 19:54 発言[未読]
【67143】Re:引数付きのアドイン関数の呼び方 noah_noah 10/11/9(火) 21:44 回答[未読]
【67150】Re:引数付きのアドイン関数の呼び方 Jaka 10/11/10(水) 16:40 発言[未読]
【67144】Re:引数付きのアドイン関数の呼び方 momo 10/11/9(火) 22:37 発言[未読]
【67149】Re:引数付きのアドイン関数の呼び方 sasa 10/11/10(水) 15:54 回答[未読]

【67138】引数付きのアドイン関数の呼び方
質問  noah_noah E-MAIL  - 10/11/9(火) 18:12 -

引用なし
パスワード
   Excel2007のマクロに、引数付きのアドイン関数を呼びたいのですが、以下のようなコードでは1004のエラーがでてきてしまいました。

引数付きのアドイン関数
(ファイル名:test.xlam)
Public Sub TestAddin(test As String)
MsgBox test
End Sub

コールする側
Public Sub ActTest()
WorkBooks("test.xlam").Application.Run("TestAddin", "hoge")
End Sub

同様にコールを
  AddIns.Add fileName:="test.xlam"
  AddIns.Add("test.xlam").Installed = True
  Application.Run "test.xlam!InitialiProc", "hoge"
にしても、だめでした。

申し訳ないのですが、どのようにしたら、引数付きの関数をコールすることができるのかをご教授お願いできますでしょうか。

【67139】Re:引数付きのアドイン関数の呼び方
発言  momo  - 10/11/9(火) 18:35 -

引用なし
パスワード
   ▼noah_noah さん:
2007は持ってないのでわかりませんが

Application.Run "test.xlam!Testaddin", "hoge"

でどうですか?

【67140】Re:引数付きのアドイン関数の呼び方
回答  noah_noah E-MAIL  - 10/11/9(火) 18:56 -

引用なし
パスワード
   momoさん
回答していただきありがとうございます。

早速試してみたのですが、ダメでした。。。
でてくるエラーは、実行時エラー 1004で
マクロ test.xlam!Testaddinを実行できません。このブックマクロが使用できないか、または全てのマクロが無効になっている可能性があります。
と出てきてしまいました。。。

もし、他のアイデアがありましたら、ご教授お願いいたします。

【67141】Re:引数付きのアドイン関数の呼び方
発言  SK63  - 10/11/9(火) 19:54 -

引用なし
パスワード
   ▼noah_noah さん:
>momoさん
>回答していただきありがとうございます。
>
>早速試してみたのですが、ダメでした。。。
>でてくるエラーは、実行時エラー 1004で
>マクロ test.xlam!Testaddinを実行できません。このブックマクロが使用できないか、または全てのマクロが無効になっている可能性があります。
>と出てきてしまいました。。。
>
>もし、他のアイデアがありましたら、ご教授お願いいたします。


このブックマクロが使用できないか、または全てのマクロが無効になっている可能性があります。

と、答えがでています。

設定を確認をまずしてみてください。

【67143】Re:引数付きのアドイン関数の呼び方
回答  noah_noah E-MAIL  - 10/11/9(火) 21:44 -

引用なし
パスワード
   SK63さん回答していただきありがとうございます。

引数無しの形式に直した場合は、実行時エラーはでなかったため、
このブックのマクロが使用できないというわけでも、全てのマクロが無効というわけでもないようです。

これについて明記し忘れてしまいました。誠に申し訳ございませんでした。

そのため、引数有りの状態にした場合、このエラーがどうしてもでてしまうのはなぜだろう?と思い、質問した次第です。

以上、よろしくお願いいたします。

【67144】Re:引数付きのアドイン関数の呼び方
発言  momo  - 10/11/9(火) 22:37 -

引用なし
パスワード
   ▼noah_noah さん:

アドインとして参照されていますか?
プロジェクトウインドウにアドインブックが表示されていますか?

の2点を確認してください。

【67149】Re:引数付きのアドイン関数の呼び方
回答  sasa  - 10/11/10(水) 15:54 -

引用なし
パスワード
   ▼noah_noah さん:
>申し訳ないのですが、どのようにしたら、引数付きの関数をコールすることができるのかをご教授お願いできますでしょうか。

アドイン関数を呼ぶのにApplication.Runを使われているのは特別なわけがありますか。
通常アドインの関数を使うための機能である参照設定をしたら何の問題もないと思います。
コールする側でアドインを参照設定すれば、
あたかも自ファイルの関数と同じに使えます。
TestAddin "hoge"

【67150】Re:引数付きのアドイン関数の呼び方
発言  Jaka  - 10/11/10(水) 16:40 -

引用なし
パスワード
   ここのどこかに引数付きのパターンをかかなかったっけ??
カッコを付き場合、引数は、カッコ外に出す。
気づきにくいかも。
区別するのにこのパターンで書くけど、カッコを付けない人もいる。
付けない方が多いかも?

Application.Run ("'Test.xlam'!TestAddin"), "hoge"

Application.Run "'Test.xla'!TestAddin", "hoge"


おまけ(アドインのチェック無しでも動く。by2003)

ps = Application.UserLibraryPath 'Addinsフォルダ
Application.Run ("'" & ps & "Test.xla'!TestAddin"), "hoge"

おまけ2

実際、↓よりも
C:\Documents and Settings\ログインユーザー名\Application Data\Microsoft\AddIns
(ログイン名の違いで使えない時がある。)

Application.LibraryPath で取れる、
C:\Program Files\Microsoft Office\OFFICE11\LIBRARY

の方が、ログイン名に関わらずに使えるから良いと思います。(97の時は、これだけ?)
角田さんも言っていたし。

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