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

VBA

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

【コピペで使える】VBAでCSVファイルの内容をExcelに転記する方法
【コピペで使える】CSVファイルに保存されているデータをExcelに取り込むことで、データの編集や集計が簡単になります。今回は、VBAを使ってCSVのデータを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

解説

サブルーチンの宣言

Sub ImportCSV()

・サブルーチンの宣言「Subroutine」の略で、特定のタスクを実行するための一連の命令を定義するためのキーワード。サブルーチンは、何らかの処理を行うコードのブロックを作成し、それをプログラム内で呼び出すことができる。

・括弧は、引数を受け取るためのもので、今回は引数が指定されていません。サブルーチンが引数を必要としない場合は、このように空の括弧が使われる。

変数宣言

Dim 〜

Dimは「Dimension」の略で、変数を宣言するために使用されるキーワード。
VBAにおいて新しい変数を作成することができる。

wsは、変数の名前。ここでは、ワークシートを表す変数として名付けられている。
この名前は開発者が自由に設定でき、コードの可読性を高めるために意味のある名前を選ぶことが一般的。

コード意味
As WorksheetExcelのワークシートを参照するためのものを示す
As String   変数が文字列データを格納することを示す
文字列は、テキストデータを扱うための型で、アルファベットや数字、記号などを含むことができる
As Long変数が整数型のデータを格納することを示します
Long型は、より大きな整数値を扱うことができ、範囲は-2,147,483,648から2,147,483,647まで
As RangeExcelシート内の特定のセルやセルの範囲を表し、これによって指定したセルの値を読み書きしたり、セルの書式を設定したりできる

データを貼り付けるシートを指定

Set ws = ThisWorkbook.Sheets(1)

・データを貼り付けるシートを指定
シート名が、「Sheets(1)」以外のときは、下記のように「””」で囲んだシート名で指定することができる。

Set ws = ThisWorkbook.Sheets("SheetName")

CSVファイルのパスを指定

csvPath = "/sample.csv"

・CSVファイルのパスを指定している。
サンプルは、CSVファイルが同じフォルダにある前提でパスを指定しているため、階層が異なるときは、それに合わせて指定する必要がある。
絶対パスにしておけば、階層を気にしなくて良くなる。

CSVファイルを開く

Set wb = Workbooks.Open(csvPath)

Workbooks は、Excelのすべてのワークブックを管理するオブジェクト。Excelで開いているすべてのブックにアクセスできる。

Open は、指定したファイルをワークブックとして開くためのメソッド。ファイルのパスやその他のオプションを引数として指定できる。

↓下記の方法で開けることも可能

Open csvPath For Input As #1

Openは、ファイルを開くためのキーワード。
指定したファイルを読み取りまたは書き込みのために開く。

For Inputは、ファイルを読み取り専用で開くことを指定。
このオプションを使用すると、ファイルの内容を読み取ることができるが、ファイルの内容を変更することはできない。

As #1でファイル番号を指定。
VBAでは、ファイルを開くときにファイル番号を指定することで、そのファイルを操作する際に使用。ファイル番号は1から65535までの整数で、同時に開くファイルごとに異なる番号を使用する必要がある。

CSVファイルとは?
CSV(Comma-Separated Values)ファイルは、データを「,」で区切ったテキストファイルです。Excelや他のアプリケーションでデータを簡単にやり取りするのに便利です。

最後に

今回は、サンプルコード解説の第一弾!続きは次回の投稿をご覧ください。

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