【コピペで使える】VBAでCSVファイルの内容をExcelに転記する方法③

VBA

今回は、前回投稿した、サンプルコードの解説の第二弾です!
まだ、投稿を見ていない方は下記のURLからご覧ください!

【コピペで使える】VBAでCSVファイルの内容をExcelに転記する方法
【コピペで使える】CSVファイルに保存されているデータをExcelに取り込むことで、データの編集や集計が簡単になります。今回は、VBAを使ってCSVのデータをExcelのシートに自動で転記する方法をご紹介します。
【コピペで使える】VBAでCSVファイルの内容をExcelに転記する方法②
前回投稿したサンプルコードを解説いたしました。ぜひ業務の効率化に役立ててください!CSV(Comma-Separated Values)ファイルは、データを「,」で区切ったテキストファイルです。Excelや他のアプリケーションでデータを簡単にやり取りするのに便利です。

サンプルコード

Sub ImportCSV()
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim csvPath As String
    Dim csvLine As String
    Dim rowNumber As Long

    ' データを貼り付けるシートを指定
    Set ws = ThisWorkbook.Sheets(1)
    
    ' CSVファイルのパスを指定
    csvPath = "/sample.csv" ' パスを正確に指定

    ' CSVファイルをワークブックとして開く
    Set wb = Workbooks.Open(csvPath)

    rowNumber = 1  ' 最初の行から貼り付けを開始

    ' 開いたワークブックの最初のシートの各行を読み込み、Excelに貼り付ける
    Dim csvRow As Range
    For Each csvRow In wb.Sheets(1).UsedRange.Rows
        ws.Cells(rowNumber, 1).Value = csvRow.Cells(1, 1).Value ' 最初の列の値を貼り付け
        rowNumber = rowNumber + 1
    Next csvRow

    ' 開いたCSVファイルを閉じる
    wb.Close SaveChanges:=False

    MsgBox "CSVファイルのインポートが完了しました!"
End Sub

解説

貼り付け行を指定

rowNumber = 1

Dim rowNumber As Long によって、rowNumber という変数がLong型(整数)として宣言されていて、 1 を代入することで、貼り付けを開始する行を1行目に指定。

・ループ処理の中で rowNumber = rowNumber + 1 のように1行ずつ下に進んでデータを貼り付け、rowNumber を更新することで行番号を制御。

For文

For Each csvRow In wb.Sheets(1).UsedRange.Rows

For Each ループは、配列やコレクション内の各要素を順に取り出して処理するための構文

Rowsは、UsedRange 内の各行をコレクションとして取得。行ごとに順にアクセス可能。
csvRowは、For Each ループの中で定義される各行を表す変数。各行のセル値を読み取ったり書き換えたりすることが可能。

転記処理

ws.Cells(rowNumber, 1).Value = csvRow.Cells(1, 1).Value
Next csvRow

・開いたCSVデータの特定のセルの値をExcelの別のシートに転記。

Next csvRow は、For Each ループの終了を表す。

開いたCSVファイルを閉じる

wb.Close SaveChanges:=False

・閉じる前に保存せずに閉じるよう指定。CSVファイルに変更が加えられていても、保存せずにそのまま閉じられる。

メッセージを表示

MsgBox "CSVファイルのインポートが完了しました!"

・メッセージボックスを表示するための命令。ポップアップウィンドウが表示され、”CSVファイルのインポートが完了しました!” というメッセージがユーザーに通知される。

・ユーザーが確認ボタンを押すことで、このマクロが完全に終了。

サブルーチン終了

End Sub

・サブルーチン(マクロ)の終了を示す。

最後に

3回に渡り、サンプルコードの提示から解説まで行ってきました。
基本的な書き方がたくさん入ったコードなので、一つ一つ理解していけるといいですね!

タイトルとURLをコピーしました