重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

aaaと言う、ユーザー定義関数を作りVBAで記述して使う場合はどのように記述すればよいでしょうか。

通常のワークシート関数であれば、

Cells(1, 1) = Application.Sum(Range("G1:G100"))
などとなりますが、

Cells(1, 1) = Application.aaa(Range("G1:G100"))
とするとエラーになります。
初歩的な質問だとは思いますが、よろしくお願いします。

A 回答 (2件)

Application.を付けるのは、Excelに元々入っている機能


(関数など)をVBAで呼び出す場合です。
ユーザーが定義した関数を呼び出す場合には付けません。

>Cells(1, 1) = Application.aaa(Range("G1:G100"))

でエラーになっているのは要するに
「Excelには"aaa"なんて関数はありませんよ」
と言われているわけです。

Cells(1, 1) = aaa(Range("G1:G100"))
でいいはずです。
    • good
    • 0

sub macro1()


 range("A1") = aaa(range("G:G"))
end sub


public function aaa(a1)
 aaa = application.sum(a1)
end function

といったような?


上手く行かないときは,「どこに(誰に)」どんな記載で持たせている(登録してある)ユーザー定義関数を,どこからどうやって呼び出すマクロを書いているのか,もうちょっと具体的な今のマクロの記述を追加して情報提供してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!