【VBAマクロ】CSVファイルのデータ取込方法(1ファイルの場合)

(1)CSVデータ取込み

VBAコード(1ファイルのCSVデータ取込み)

Sub csvデータ取込()
'
' csvデータ取込(1ファイルの場合)
'

    Dim filePath As String: filePath = "C:\Excelテスト\Note01\【VBAマクロ】CSVファイルデータ取込方法\1ファイル\csv\CSVデータ.csv"
    Dim charCode As String: charCode = "Shift_JIS"
    Dim sheetName As String: sheetName = "データ"
    
    Dim textFileDataObj As Object
    Dim textData As Variant
    Dim arrRowData As Variant     '()なしの宣言(カッコなしでVariantにすると、変数が代入されれば変数になり、配列が代入されれば配列になる)
    Dim row As Long
    Dim arrCsvRowData As Variant  '()なしの宣言(カッコなしでVariantにすると、変数が代入されれば変数になり、配列が代入されれば配列になる)
    
    
    '■実行確認
    If MsgBox("処理を実行しますか?", vbYesNo + vbQuestion, "実行確認") = vbNo Then
        Exit Sub
    End If
    
    
    '■CSVデータ取得
    '
    '読み込んだテキストデータのオブジェクト作成
    Set textFileDataObj = CreateObject("ADODB.stream")
    
    With textFileDataObj
        .Charset = charCode       '文字コードを設定
        .Open                       'オブジェクトを開く
        .LoadFromFile filePath      'CSVファイルからデータを取得
    
        textData = .readtext          '変数:textDataへ代入
    
        .Close                      'オブジェクトを閉じる
        
    End With
    
   

    '■データ書込み
    '
    'セルのデータを削除する(値のみ削除)
    Sheets(sheetName).UsedRange.Offset(1, 0).EntireRow.ClearContents 'UsedRangeでデータのあるセルを全て選択し、offsetで1行目の選択を外す
    
    '書き込み先セルの開始行を設定
    startRow = 2
    
    '改行文字の場所でデータを分割
    arrRowData = Split(textData, vbCrLf)
    
    
    '分割したデータを1行ずつ処理する
    For row = 0 To UBound(arrRowData)
    
        'arrRowDataのデータがあれば、処理実行(空データの場合は処理しない)
        If Len(arrRowData(row)) > 0 Then
        
            'arrRowDataをカンマで分割し、arrCsvRowDataへ代入(ここでarrCsvRowDataは配列になる)
            arrCsvRowData = Split(arrRowData(row), ",")
            
            'セルに書き込む(arrCsvRowDataを1行ずつ貼りつけ)
            Sheets(sheetName).Range("A" & startRow, "G" & startRow).Value = arrCsvRowData   '指定した範囲へ一度に貼り付けされる
            
            'startRowを次の行へ
            startRow = startRow + 1
            
        End If
    Next
    
    
    '■終了メッセージ
    MsgBox "処理が完了しました。"
    

'
End Sub

実行後画面(1ファイルのCSVデータ取込み)


この記事が気に入ったらサポートをしてみませんか?