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

【初心者向け】Excelで「開発」タブを表示させる方法 サムネ画像 VBA

CSVファイルに保存されているデータをExcelに取り込むことで、データの編集や集計が簡単になります。
今回は、VBAを使ってCSVのデータをExcelのシートに自動で転記する方法をご紹介します。
VBAの詳しい説明は別の記事にまとめていますので、そちらも参考にしてください。

準備

  1. CSVファイルの用意
    CSVファイルは、Excelと同じフォルダに保存しておくと便利です。今回の記事では、ファイル名を「sample.csv」とします。
  2. Excelの「開発」タブを表示
    VBAを使うには「開発」タブが必要です。
  3. VBAエディタの起動
    「開発」タブの「Visual Basic」をクリックし、VBAエディタを開きます。

サンプルコード

以下が、CSVファイルをExcelに転記するためのVBAコードです。簡単なコードなので、ぜひそのまま貼り付けて使ってみてください。
※MacBookを使用しているため、表示やパスの指定の仕方に違いがあるので、お手持ちの環境に合わせてください

コードの書き方

  1. 新しいモジュールを追加
    VBAエディタのメニューから「挿入」→「標準モジュール」を選択し、新しいモジュールを追加します。
  2. コードを貼り付ける
    以下のコードをモジュールに貼り付けてください。
    ※「"/sample.csv"」は、実際に置いたCSVを指定してください
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

下記は、CSVのサンプルですが、中身を書き換えても大丈夫です。
※ファイル名の例 [ sample.csv ] 拡張子に気をつけてください

りんご
バナナ
いちご
ぶどう
オレンジ
さくらんぼ
パイナップル
キウイ
メロン
スイカ
レモン
マンゴー
モモ
ブルーベリー
グレープフルーツ
ナシ
アボカド
パッションフルーツ
ドラゴンフルーツ
ライチ

コードの説明

  1. 貼り付けるシートを指定
    Set ws = ThisWorkbook.Sheets(1) で、CSVデータを貼り付けるシートを指定しています。ここでは、Excelファイルの最初のシート(Sheet1)にデータを貼り付ける設定です。
  2. CSVファイルのパスを指定
    csvPath = ThisWorkbook.Path & "\sample.csv" の行で、CSVファイルのパスを指定しています。Excelファイルと同じフォルダにある「sample.csv」を指定していますが、別のファイル名やパスがある場合は適宜変更してください。
  3. CSVの各行を読み込んで転記
    Do Until EOF(1)から始まる部分では、CSVファイルの内容を1行ずつ読み込み、シートに転記しています。rowNumber は行番号を管理していて、各行のデータを次の行に貼り付けるために使います。
  4. ファイルを閉じる
    Close #1 でCSVファイルを閉じます。これを忘れると、次にファイルを開く際にエラーが出る場合があるので注意しましょう。

実行方法

コードを貼り付けたら、VBAエディタを閉じて「開発」タブの「マクロ」をクリックし、ImportCSV を選んで実行します。処理が完了すると、CSVの内容がExcelのシートに転記され、最後に「CSVファイルのインポートが完了しました!」というメッセージが表示されます。

VBAでCSVファイルの内容をExcelに転記する方法 説明用画像1
VBAでCSVファイルの内容をExcelに転記する方法 説明用画像2

よく起こるエラー

文字化け

出力はできたけど、文字化けしてしまうことがあります。
元のCSVの文字コードを確認して、Shift-JISになっていることを確認してください

パスは合ってるのに、CSVが開けない

権限がない状態になっていることがあるので、コマンド等で権限を確認・必要な権限を与えるようにしてください

まとめ

このように、VBAを使えばCSVの内容をExcelに簡単に取り込むことができます。これを使って、日々のデータ入力や更新作業を効率化しましょう。

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