← コード一覧へ戻る
実務プロシージャ

引数を可変にする

ParamArrayで個数の異なる引数を受け取り、文字列として結合します。

実行前に確認

  • ParamArrayは最後の引数に置き、Variantの配列にします。ByVal・ByRef・Optionalは同時に指定しません。
  • この例は文字列へ変換できる値を渡す前提です。配列、オブジェクト、Null、エラー値を引数に渡す例ではありません。
  • Excel実機での動作は未確認です。コピーした練習用ブックで試してください。

1サンプルコード

Option Explicit

Sub Example7038()
    MsgBox Join7038("赤", "青", "緑")
    MsgBox Join7038("1件だけ")
End Sub

Private Function Join7038(ParamArray items() As Variant) As String
    Dim item As Variant
    Dim result As String
    Dim separator As String
    For Each item In items
        result = result & separator & CStr(item)
        separator = " / "
    Next item
    Join7038 = result
End Function

図で見る引数を可変にするの流れ

イメージ図

ParamArrayで個数の異なる引数を受け取り、文字列として結合します。

  1. 入力・開始時

    赤・青・緑、次に1件だけを渡す

  2. 実行する処理

    ParamArrayをFor Eachで回し、区切り「 / 」を挟む

  3. 結果

    赤 / 青 / 緑、次に1件だけ

セルの値や既存のファイルを変更しない例です。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    デスクトップ版Excelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]を選び、空のモジュールの先頭にこの例全体を貼り付けます。

  2. 2

    書き換えは不要です。まず例の値のままで試し、値や変数名を変える場合は同じ名前の箇所も揃えます。

  3. 3

    Example7038のSub内にカーソルを置き、F5キーで実行します。

  4. 4

    「赤 / 青 / 緑」と「1件だけ」が順番に表示されます。

使っている機能の公式ドキュメント(Microsoft Learn)