📊 Excel VBA Top100
🔄

ImportCSV

データ処理

CSVファイルを選択してアクティブシートにインポートします

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: ImportCSV を実行し、CSVファイルを選択します

💻 VBAコード

' ImportCSV
' -----------------
' Macro Name: ImportCSV
' Description: CSVファイルを選択してアクティブシートにインポートします
' Parameters: なし
' Returns: なし
' Usage: ImportCSV を実行し、CSVファイルを選択します
' -----------------

Sub ImportCSV()
    On Error GoTo ErrorHandler

    Dim ws As Worksheet
    Dim csvPath As Variant
    Dim fileNum As Integer
    Dim lineStr As String
    Dim fields() As String
    Dim rowNum As Long
    Dim j As Long

    Set ws = ActiveSheet

    csvPath = Application.GetOpenFilename("CSVファイル (*.csv), *.csv", , "CSVファイルを選択")
    If csvPath = False Then Exit Sub

    If Application.WorksheetFunction.CountA(ws.UsedRange) > 0 Then
        If MsgBox("シートにデータが存在します。クリアしてインポートしますか?", vbYesNo, "確認") = vbNo Then
            Exit Sub
        End If
        ws.Cells.Clear
    End If

    fileNum = FreeFile
    Open csvPath For Input As #fileNum

    rowNum = 1
    Do While Not EOF(fileNum)
        Line Input #fileNum, lineStr
        fields = Split(lineStr, ",")
        For j = 0 To UBound(fields)
            ws.Cells(rowNum, j + 1).Value = fields(j)
        Next j
        rowNum = rowNum + 1
    Loop

    Close #fileNum

    MsgBox (rowNum - 1) & " 行をインポートしました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    If fileNum > 0 Then Close #fileNum
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub