13

私は、VBA関数を使用してExcelで値を計算できるというかすかな記憶があります(セルの数式として)。

=MyCustomFunction(A3)

これはできますか?

編集:

これは私のVBA関数の署名です:

Public Function MyCustomFunction(str As String) As String

関数はThisWorkbookモジュール内にあります。上記のようにワークシートで使用しようとすると、#NAME?エラーが発生します。


解決策(ありがとう、codeape):ThisWorkbookモジュールが定義されている場合、関数にアクセスできません。ブックに手動で追加された「適切な」モジュールに含まれている必要があります。

4

2 に答える 2

20

はい、できます。モジュールでVBA関数を定義するだけです。例を含む優れた紹介については、http://www.vertex42.com/ExcelArticles/user-defined-functions.htmlを参照してください。

簡単な例を次に示します。

  • 新しいブックを作成する
  • VBAビューに切り替える(Alt-F11)
  • モジュールを挿入します:挿入| モジュール
  • モジュールの内容:
オプション明示

関数MyCustomFunction(入力)
    MyCustomFunction =42+入力
終了機能
  • ワークシート(Alt-F11)に戻り、いくつかの値を入力します。
A1:2
A2:= MyCustomFunction(A1)
于 2009-04-16T12:00:35.927 に答える
4

inputという単語は基本的なキーワードであるため、置き換える必要があります。代わりにnumを試してください。バリアントなどのタイプを指定して、さらに先に進むこともできます。

Function MyCustomFunction(num As Variant)
    MyCustomFunction = 42 + num
End Function
于 2010-03-23T14:51:10.520 に答える