アクセス上位ページ
 
最近の更新内容
(4)-b.LBound、UBound関数 ⇐ [PREV]
[NEXT] ⇒ (4)-d.Join関数

Excel VBA ≫ 2.関数リファレンス - 配列関連(4)-c.Split関数

【ページ内リンク】

Split関数

Split関数はある文字列を指定した区切り文字により分割した 1 次元配列を返します。
  • 【構文】
    Split (Expression [, Delimiter] [, Limit] [, Compare])

      【戻り値】 バリアント型 (Variant)

  • 引数名 省略 説明
    Expression × 任意の文字列式を指定します。 長さ 0 の文字列 ("") である場合、要素もデータもない空の配列を返します。
    Delimiter 文字列の区切りを識別する文字を指定します。 省略すると、区切り文字にスペース (" ") が使用されます。
    Limit 返す配列の要素数を指定します。 -1(既定値)を指定すると、すべての文字列を含んだ配列を返します。
    Compare 文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。 引数 Compare を省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。


    引数Compareに指定可能な定数
    定数 説明
    vbUseCompareOption -1 Option Compare ステートメントの設定を使用して比較を行います。
    vbBinaryCompare 0 バイナリ モードで比較を行います。
    vbTextCompare 1 テキスト モード(大文字/小文字、全角/半角 区別なし)で比較を行います。




  • Split関数の使用例1
  • Sub sample_ef043_01()
        Dim Var     As Variant
        Dim i       As Integer
    
        'CSV形式の文字列をカンマで分割し、
        'その分割した値を配列(Variant型)で受け取ります。
        Var = Split("AAA,1,BBB,2000,あいうえお", ",")
    
        '分割した内容を表示します。
        For i = LBound(Var) To UBound(Var)
            Debug.Print i & ":" & Var(i)
        Next i
    End Sub
    
    ⇒ サンプルマクロ集 へ


    <実行結果(イミディエイトウィンドウ)>
    0:AAA
    1:1
    2:BBB
    3:2000
    4:あいうえお
    


  • Split関数の使用例2
  • CSV形式のファイル(test.csv)を読み込み、数値を2倍してCSV形式で別のファイルへ書き出す例です。 当マクロを組み込んだエクセルブックが格納されているフォルダを作業フォルダとしています。
    Sub sample_ef043_02()
        Dim inFH    As Integer  '入力用ファイル番号
        Dim outFH   As Integer  '出力用ファイル番号
        Dim inFileName  As String
        Dim outFileName As String
        Dim textLine    As String
        Dim Var     As Variant
        Dim i       As Long
        Dim cnt     As Long
    
        '入力・出力ファイル名の設定
        inFileName = "test.csv"
        outFileName = "test_out.csv"
    
        'カレントフォルダをこのワークブックと同じにする
        ChDrive ThisWorkbook.Path
        ChDir ThisWorkbook.Path
    
        '入力ファイルの存在確認
        If Dir(inFileName) = "" Then
            MsgBox "入力ファイルが存在しません。", vbCritical
            End
        End If
    
        '入力ファイルを開く
        inFH = FreeFile
        Open inFileName For Input As #inFH
    
        '出力ファイルを開く
        outFH = FreeFile
        Open outFileName For Output As #outFH
    
        '入力ファイルが終了するまで繰り返す。
        Do While Not EOF(inFH)
            '入力ファイルを1行ずつ読み込む
            Line Input #inFH, textLine
            'カンマで区切る
            Var = Split(textLine, ",")
            '区切った文字を1つずつ処理
            For i = LBound(Var) To UBound(Var)
                '数値かどうかチェック
                If IsNumeric(Var(i)) Then
                    '数値であれば2倍する
                    Var(i) = 2 * Var(i)
                    cnt = cnt + 1
                End If
            Next i
    
            'カンマで結合した文字列を出力
            Print #outFH, Join(Var, ",")
        Loop
    
        '入力・出力ファイルを閉じる
        Close #inFH, #outFH
    
        If cnt > 0 Then
            MsgBox cnt & "個の数値を2倍しました。", vbInformation
        Else
            MsgBox "数値は1つもありませんでした。", vbExclamation
        End If
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <入力ファイルの内容> 入力ファイル(テキストファイル)の内容 <実行結果> 実行結果(ダイアログボックス) 実行結果(出力ファイル)
    【参考】入力ファイルがない場合 入力ファイルがない場合のメッセージ 【参考】数値が1つもない場合 数値が1つもない場合のメッセージ
カテゴリ内ページ
Excel VBA 〜 総目次 〜
- 2.関数リファレンス
-- (4).配列関連
--- (4)-a.Array関数
--- (4)-b.LBound、UBound関数
--- (4)-c.Split関数
--- (4)-d.Join関数



Page
Top