VBAで自作の関数をセル内の式から呼び出すには、
Public Functionとして標準モジュールに定義してやればよい。
(Subは×、Publicをつけなくても×、標準モジュール以外に定義しても×)
それからそれから、可変長の引数をとるような関数を定義するには、
配列で宣言した引数の前に「ParamArray」をつけて定義してやればよい。
以下のサンプルは、セルの式として埋め込み可能で、
複数の引数をとり、引数をCSV形式に変換して表示するシンプルな関数だ。
'VBAの関数をセルの式から呼び出すには、「Public Function」として「標準モジュール」に定義する。 'VBAで「可変長引数」を使うには、配列で宣言した引数の前に「ParamArray」をつける。 Public Function csv(ParamArray args() As Variant) Dim argcsv As String For Each arg In args If argcsv <> "" Then argcsv = argcsv & "," End If If IsNumeric(arg) = False Then argcsv = argcsv & """" & arg & """" Else argcsv = argcsv & arg End If Next csv = argcsv End Function
以下のように使える。