CSVファイルをExcelVBAで操作する方法|自動化の時短マクロ事例つき

 

業務で頻繁に使われるCSVファイル。これを手作業で操作するのは非効率です。エクセルVBAマクロの便利な機能の一つを使えば、CSVファイルは簡単に操作で時短できます。

 

Excel VBAマクロを活用してCSVファイルを取り込む方法やサンプルコードをもとに、あなたのスキル向上と業務効率化をサポートする情報をお届けします。

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

命令の意味は分かるけど、何に使うのか分からないと感じている方へ。
30万人が読んだ記事をもとに再構成。

データ分割を題材に、実務の流れの中で理解できる講座です。

↓↓↓↓↓
自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

Excel VBAでCSVを読み込む基本手法【初心者向け】

CSVファイルはテキスト形式でデータを保持するため、エクセルへの取り込みやデータ処理に適していますが、手作業で行うと手間がかかります。ここをVBAマクロで自動化を実現します。

 

CSVファイルの取り込みの基本的な手法

・VBAコードでCSVファイルを開く

・データをエクセルシートに読み込む

・データの整形

 

なぜCSV取り込みにVBAを使うのか?メリットと活用シーン

 

VBAマクロを使うメリットは下記3つ。

 

自動化

VBAマクロを利用することで、CSVファイルの取り込みやデータ処理を自動化できます。反復的な作業を減らし、時間を節約できます。

 

正確性

手動での作業よりもVBAマクロを使うことで、データ処理の正確性と信頼性を高められます。一貫性のあるデータ処理が可能です。

 

柔軟性

VBAマクロを活用すれば、異なる形式のCSVファイルに対応したり、データの整形や特定の条件に基づいた処理を柔軟に行えます。

 

エクセルでCSVファイルを取り込む必要性は下記3つ。

 

データの活用

多くの場面でCSVファイルは広く利用されています。エクセルでCSVファイルを取り込むことで、データを活用しやすくなります。

 

データの統合

エクセルはデータを集約し、異なるデータソースを一つにまとめられるので、データ活用に重要な役割を果たします。

 

分析とレポート

エクセルでCSVファイルを取り込むことで、データの分析やレポート作成がしやすくなります。ビジネス上の意思決定に役立ちます。

 

Excel VBAによるCSV読み込みの基本コード例

 

Excel VBAを使ってCSVファイルをExcelに読み込む基本的な手順を3つのステップで解説します。

 

Workbooks.Openメソッドでファイルを開く

 

Workbooks.Open メソッドを使用して、対象のCSVファイルを開きます。

 

  1. Option Explicit
  2. Sub OpenCSVFile()
  3.     Workbooks.Open Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv"
  4. End Sub

 

※フォルダ、CSVは環境に合わせ修正してください。

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

命令の意味は分かるけど、何に使うのか分からないと感じている方へ。
30万人が読んだ記事をもとに再構成。

データ分割を題材に、実務の流れの中で理解できる講座です。

↓↓↓↓↓
自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

データを指定シートに移動する

 

読み込んだデータを別のシートやブックに移動させる

 

  1. Option Explicit
  2. Sub MoveDataToSheet()
  3.     Dim wb As Workbook
  4.     Set wb = Workbooks.Open(Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv")
  5.     wb.Sheets(1).UsedRange.Copy Destination:=ThisWorkbook.Sheets("Sheet1").Range("A1")
  6.     wb.Close SaveChanges:=False
  7. End Sub

 

開いたファイルを閉じる

 

作業後、開いたCSVファイルを閉じます。(不要なメモリ使用を防ぎます)

 

  1. Option Explicit
  2. Sub CloseCSVFile()
  3.     Dim wb As Workbook
  4.     Set wb = Workbooks.Open(Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv")
  5.     wb.Close SaveChanges:=False
  6. End Sub

 

複数のCSVファイルを一括で処理コード

 

フォルダ内のすべてのCSVファイルを一括で開き、データを結合するコード例です。

 

  1. Option Explicit
  2. Sub ProcessMultipleCSVFiles()
  3.     Dim folderPath As String
  4.     Dim fileName As String
  5.     Dim wb As Workbook
  6.     
  7.     folderPath = "C:\Users\User\Desktop\新しいフォルダー\"
  8.     fileName = Dir(folderPath & "*.csv")
  9.     
  10.     Do While fileName <> ""
  11.         Set wb = Workbooks.Open(folderPath & fileName)
  12.         wb.Sheets(1).UsedRange.Copy _
  13.             Destination:=ThisWorkbook.Sheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
  14.         wb.Close SaveChanges:=False
  15.         fileName = Dir
  16.     Loop
  17. End Sub

 

※上記コード例で読み込みするCSVのコードはSJISで、カンマ区切りを想定しています。

 

データ形式に関する問題

CSVファイルの文字コードが異なる場合(例: UTF-8)、文字化けが発生する可能性があります。Excelで読み込む前に、必要に応じて文字コードを変換してください。

 

大量CSVを高速読み込みするQueryTables活用法

 

大規模CSVを早く取り込み方法に使うメソッドのQueryTablesのサンプルコードの例を紹介します。

 

QueryTablesメソッドを使ったサンプルコード

ご好評をいただいております。下記コンテンツは2026年6月末まで期間限定価格となっております。はじめてご利用の方は、事前にこちらを確認ください。 (2026年6月末までの通常価格600円⇒半額のプレミアム価格: 300円(税込)でご利用いただけます)

有名なブログサービス「はてなブログ」も、コンテンツ販売サービスの「codoc」と連携しています。安心してご利用ください。※vba-navサイトでユーザー様のクレジットなどの決済情報は一切管理していません。

また、オンライン購入する際、個人情報の入力に不安を感じる人も、安心して購入できるコンビニ決済が使えます。