
業務で頻繁に使われるCSVファイル。これを手作業で操作するのは非効率です。エクセルVBAマクロの便利な機能の一つを使えば、CSVファイルは簡単に操作で時短できます。
Excel VBAマクロを活用してCSVファイルを取り込む方法やサンプルコードをもとに、あなたのスキル向上と業務効率化をサポートする情報をお届けします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 命令の意味は分かるけど、何に使うのか分からないと感じている方へ。 データ分割を題材に、実務の流れの中で理解できる講座です。 ↓↓↓↓↓
30万人が読んだ記事をもとに再構成。
▶ 自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Excel VBAでCSVを読み込む基本手法【初心者向け】
CSVファイルはテキスト形式でデータを保持するため、エクセルへの取り込みやデータ処理に適していますが、手作業で行うと手間がかかります。ここをVBAマクロで自動化を実現します。
・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ファイルを開きます。
- Option Explicit
- Sub OpenCSVFile()
- Workbooks.Open Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv"
- End Sub
※フォルダ、CSVは環境に合わせ修正してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 命令の意味は分かるけど、何に使うのか分からないと感じている方へ。 データ分割を題材に、実務の流れの中で理解できる講座です。 ↓↓↓↓↓
30万人が読んだ記事をもとに再構成。
▶ 自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
データを指定シートに移動する
読み込んだデータを別のシートやブックに移動させる
- Option Explicit
- Sub MoveDataToSheet()
- Dim wb As Workbook
- Set wb = Workbooks.Open(Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv")
- wb.Sheets(1).UsedRange.Copy Destination:=ThisWorkbook.Sheets("Sheet1").Range("A1")
- wb.Close SaveChanges:=False
- End Sub
開いたファイルを閉じる
作業後、開いたCSVファイルを閉じます。(不要なメモリ使用を防ぎます)
- Option Explicit
- Sub CloseCSVFile()
- Dim wb As Workbook
- Set wb = Workbooks.Open(Filename:="C:\Users\User\Desktop\新しいフォルダー\テキスト1.csv")
- wb.Close SaveChanges:=False
- End Sub
複数のCSVファイルを一括で処理コード
フォルダ内のすべてのCSVファイルを一括で開き、データを結合するコード例です。
- Option Explicit
- Sub ProcessMultipleCSVFiles()
- Dim folderPath As String
- Dim fileName As String
- Dim wb As Workbook
- folderPath = "C:\Users\User\Desktop\新しいフォルダー\"
- fileName = Dir(folderPath & "*.csv")
- Do While fileName <> ""
- Set wb = Workbooks.Open(folderPath & fileName)
- wb.Sheets(1).UsedRange.Copy _
- Destination:=ThisWorkbook.Sheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
- wb.Close SaveChanges:=False
- fileName = Dir
- Loop
- End Sub
※上記コード例で読み込みするCSVのコードはSJISで、カンマ区切りを想定しています。
CSVファイルの文字コードが異なる場合(例: UTF-8)、文字化けが発生する可能性があります。Excelで読み込む前に、必要に応じて文字コードを変換してください。
大量CSVを高速読み込みするQueryTables活用法
大規模CSVを早く取り込み方法に使うメソッドのQueryTablesのサンプルコードの例を紹介します。
QueryTablesメソッドを使ったサンプルコード
ご好評をいただいております。下記コンテンツは2026年6月末まで期間限定価格となっております。はじめてご利用の方は、事前にこちらを確認ください。 (2026年6月末までの通常価格600円⇒半額のプレミアム価格: 300円(税込)でご利用いただけます)
有名なブログサービス「はてなブログ」も、コンテンツ販売サービスの「codoc」と連携しています。安心してご利用ください。※vba-navサイトでユーザー様のクレジットなどの決済情報は一切管理していません。
また、オンライン購入する際、個人情報の入力に不安を感じる人も、安心して購入できるコンビニ決済が使えます。
