- ベストアンサー
ユーザー定義関数を作りVBAで記述
aaaと言う、ユーザー定義関数を作りVBAで記述して使う場合はどのように記述すればよいでしょうか。 通常のワークシート関数であれば、 Cells(1, 1) = Application.Sum(Range("G1:G100")) などとなりますが、 Cells(1, 1) = Application.aaa(Range("G1:G100")) とするとエラーになります。 初歩的な質問だとは思いますが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Application.を付けるのは、Excelに元々入っている機能 (関数など)をVBAで呼び出す場合です。 ユーザーが定義した関数を呼び出す場合には付けません。 >Cells(1, 1) = Application.aaa(Range("G1:G100")) でエラーになっているのは要するに 「Excelには"aaa"なんて関数はありませんよ」 と言われているわけです。 Cells(1, 1) = aaa(Range("G1:G100")) でいいはずです。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
回答No.1
sub macro1() range("A1") = aaa(range("G:G")) end sub public function aaa(a1) aaa = application.sum(a1) end function といったような? 上手く行かないときは,「どこに(誰に)」どんな記載で持たせている(登録してある)ユーザー定義関数を,どこからどうやって呼び出すマクロを書いているのか,もうちょっと具体的な今のマクロの記述を追加して情報提供してみてください。