レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

Excelで自作関数をセルの式から呼び出す方法+可変長引数を使う方法(CSV行作成サンプル付き)

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

以下のように使える。