【2026年8月最新】ExcelVBAでCSVファイルを読み込む方法とは?高速化・文字化け対策と、マクロを書かずに済ませる代替策
「銀行から落としてきた入出金明細のCSVを、また手作業でExcelに転記している」「広告代理店から届く配信レポートのCSVを、毎週コピペで集計表に流し込んでいる」——心当たりのある経営者・管理職は少なくないはずです。
この「CSVファイルの中身をExcelに取り込む」という作業は、ExcelのVBA(マクロ機能)の世界では「CSVファイルを読み込む」という、業務効率化の入り口としてよく扱われるテーマです。うまく組めば、ボタン一つで数千行のデータが一瞬でシートに展開されるようになります。
この記事を最後まで読むと、次の内容が理解できます。
01 WHY CSV IMPORT MATTERS なぜ「CSVファイルの取込」が経営の日常業務になっているのか 銀行明細・広告レポート・POS・SaaSエクスポート、あらゆる場所からCSVは届く
CSV(Comma-Separated Values)ファイルは、異なるシステム同士がデータをやり取りするための「共通フォーマットの伝票」のようなものです。銀行のオンラインバンキング、Google広告やMeta広告の管理画面、POSレジ、freeeやSalesforce・kintoneのようなSaaSツール——業種を問わず、ほとんどの外部システムは「データを出力してください」と頼むとCSVファイルを吐き出します。
📚 用語解説
CSVファイル:Comma-Separated Valuesの略。1行が1件のデータを表し、各項目(列)をカンマ「,」で区切って並べたテキストファイル。Excelの表と似た構造をシンプルなテキストだけで表現できるため、システム間でデータをやり取りする際の共通フォーマットとして広く使われている。拡張子は「.csv」。
経営や管理の現場でよく発生するCSV取込のシーンを挙げると、以下のようなものがあります。
この「届いたCSVを自社のExcelに取り込む」作業は、たとえるなら取引先から届く「共通様式の伝票の束」を、自社の台帳フォーマットに転記する経理の窓口業務に近い作業です。伝票が数枚であれば手作業でも問題ありませんが、毎日・毎週、数百〜数千行の伝票が届くようになると、手作業での転記は現実的な時間では終わらなくなります。
CSVが届く
銀行・広告・POS・
SaaSツール
中身を確認する
区切り文字・
文字コードを確認
フォーマットに転記
列の対応付け・
集計処理
報告に使う
予実管理・
売上分析
この一連の流れのうち、「ファイルを開いて中身を確認し、自社フォーマットに転記する」部分を自動化する仕組みが、これから解説するExcelVBAの「CSV読み込み」機能です。手作業なら数十分〜数時間かかる転記作業が、正しく組めばボタン一つ・数秒で完了するようになります。
02 WHAT VBA DOES ExcelVBAの「CSVを読み込む」とは、結局何をしているのか 手順書(マクロ)に従って、伝票を1行ずつ仕分けていく作業
ExcelVBA(Visual Basic for Applications)は、Excel上で動く「手順書」を自分で書いて、繰り返し作業を自動実行させるための仕組みです。この手順書のことを「マクロ」と呼びます。
📚 用語解説
VBA(Visual Basic for Applications):Microsoft Office製品(Excel・Word等)に組み込まれているプログラミング言語。Excelの操作(セルへの入力、シートの作成、ファイルの読み書きなど)を、あらかじめ書いた手順(マクロ)に従って自動実行させることができる。「Alt+F11」で開発画面(VBEditor)を開いてコードを書く。
📚 用語解説
マクロ:ある作業手順を記録・記述しておき、あとでボタン一つ(またはショートカットキー)で再実行できるようにしたもの。ExcelにおけるマクロはVBAという言語で書かれる。「毎回同じ手順を繰り返す作業」を人間の代わりにコンピュータへ肩代わりさせる仕組みと考えると分かりやすい。
この「手順書」を、郵便物の仕分けを担当するアルバイトスタッフへの指示書に例えてみます。指示書には「封筒を1通ずつ開けて、中の書類を見て、部署ごとの棚に振り分けてください」と書かれています。CSVファイルの読み込みでVBAが行っていることも、基本的にはこれと同じ発想です。
開く(開封)
読み取る
1行=1件の
伝票データ
項目に分ける
日付・金額・
摘要など
書き込む
決まった列に
振り分け
CSVファイルの中身は、実際には「2026-08-01,1000,広告費」のようにカンマで区切られた文字の羅列にすぎません。この文字列を1行ずつ読み取り、カンマの位置で項目を分割し、Excelの決まったセルに書き込んでいく——これがVBAによる「CSV読み込み」処理の正体です。次章から、この処理を実現する代表的な2つの方法を具体的に見ていきます。
なお、このマクロという「手順書」を実際に書くには、ある程度のプログラミングの知識と、動かなくなったときに原因を突き止める根気が必要になります。「自分でVBAを書くのはハードルが高い」と感じる方向けに、この記事の後半(10章以降)では、手順書そのものを自分で書かなくても、日本語で「このCSVからこういうデータが欲しい」と伝えるだけで処理してくれる方法もあわせて紹介します。
03 OPEN STATEMENT 方法1:Openステートメントで1行ずつ読み込む CSVをテキストファイルとして開き、1行ずつ手作業で仕分ける方法
1つ目の方法は、VBAのOpenステートメントでCSVファイルをテキストファイルとして開き、Line Inputで1行ずつ読み取りながら処理していくやり方です。ファイルの中身を先頭から順番にめくっていくイメージで、最も基本に忠実な読み込み方法です。
Sub ImportCSV_LineInput()
Dim filePath As String
Dim fileNo As Integer
Dim strLine As String
Dim fields() As String
Dim r As Long
filePath = "C:\Data\bank_export.csv"
fileNo = FreeFile ' 空いているファイル番号を自動取得
r = 1
Open filePath For Input As #fileNo
Do Until EOF(fileNo) ' ファイルの終端まで繰り返す
Line Input #fileNo, strLine
fields = Split(strLine, ",") ' カンマで項目を分割
Cells(r, 1).Value = fields(0) ' 日付
Cells(r, 2).Value = fields(1) ' 金額
Cells(r, 3).Value = fields(2) ' 摘要
r = r + 1
Loop
Close #fileNo
End Sub
このコードは、ファイルを1行読んではSplit関数でカンマ区切りに分解し、その場でセルに書き込む、という動作を最終行まで繰り返します。仕組みが単純で理解しやすく、区切り文字や読み込む列を細かく制御できるのが利点です。
CSVの仕様上、住所や摘要欄などのテキストにカンマや改行が含まれる場合、その項目全体をダブルクォート「"」で囲んで区別するルールがあります。単純にSplit(strLine, ",")で分割する方法は、こうした「クォートで囲まれたカンマ」まで区切り文字と誤認識してしまい、項目がズレる原因になります。摘要欄などに自由入力のテキストが含まれるCSVを扱う場合は、クォート処理まで考慮したロジックが必要です。
04 QUERYTABLES METHOD 方法2:QueryTablesメソッドで一括インポートする Excelの「外部データの取り込み」機能をVBAから操作する方法
2つ目の方法は、QueryTablesを使う方法です。これはExcelにもともと備わっている「外部データの取り込み」機能をVBAから呼び出すやり方で、CSVファイルを1行ずつ読むのではなく、接続設定に従ってまとめて取り込む点がOpenステートメントとの大きな違いです。
Sub ImportCSV_QueryTables()
With Worksheets("Sheet1").QueryTables.Add( _
Connection:="TEXT;C:\Data\bank_export.csv", _
Destination:=Worksheets("Sheet1").Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True ' カンマ区切りとして解釈
.TextFilePlatform = 932 ' 文字コード:Shift-JIS(日本語Windows)
.Refresh BackgroundQuery:=False ' 取り込みを実行(同期処理)
.Delete ' 外部データへの接続を解除し、値だけ残す
End With
End Sub
TextFileCommaDelimiter(区切り文字の指定)やTextFilePlatform(文字コードの指定)といったプロパティを設定できるため、CSVのフォーマットに合わせて取り込み条件を細かく指定できます。取り込み処理自体はExcel内部のエンジンにまとめて任せる形になるため、行数が多いCSVでも比較的高速に処理される傾向があります。
📚 用語解説
QueryTables(クエリテーブル):Excelが外部データ(テキストファイル・データベースなど)を取り込むための接続情報を保持するオブジェクト。VBAから操作すると、手動で「データ」タブ→「テキストファイルから」を選ぶのと同じ取り込み処理を、コードで自動化できる。近年ではExcel標準機能の「Power Query(データの取得と変換)」がGUIベースの後継機能として案内されることが多い。
なお、近年のExcelではPower Query(データの取得と変換)というGUI操作だけでCSV取込・整形ができる機能が強化されており、Microsoft側もこちらの利用を案内するケースが増えています。VBAのQueryTablesと役割は近いものの、Power QueryはVBAコードを書かずにマウス操作だけで区切り文字・文字コード・列の型変換まで設定できるのが特徴です。「VBAを書きたくない」場合の選択肢の一つとして知っておくとよいでしょう。
QueryTablesは指定したDestination(取込先セル)を起点に、CSVの行数・列数に応じて自動的に範囲を広げながらデータを書き込みます。既存のデータがある位置を取込先に指定すると、意図せず上書きしてしまうことがあるため、実行前に空のシート・空の範囲であることを確認してください。
05 COMPARISON 2つの方法の比較と使い分け データ量・柔軟性・保守性で選び方が変わる
ここまで紹介したOpenステートメントとQueryTablesを、実務で選ぶ際の判断基準として比較表にまとめます。
| 観点 | Openステートメント(Line Input) | QueryTablesメソッド |
|---|---|---|
| 処理の考え方 | 1行ずつ読み込み、都度セルに書き込む | 接続設定に従い、まとめて取り込む |
| 処理速度の目安 | 行数が多いと遅くなりやすい | 大量データでも比較的高速 |
| 細かい制御 | 項目単位で自由に加工しやすい | 区切り文字・文字コード等の設定に依存 |
| クォート内カンマへの対応 | 追加のロジックが必要 | ある程度自動で解釈される |
| 学習のしやすさ | 仕組みがシンプルで理解しやすい | Excelの内部機能への理解が必要 |
| 近年の代替手段 | — | Power Query(GUI操作)でも同等のことが可能 |
実務でよくある判断基準はシンプルです。「読み込みながら1行ごとに複雑な加工(条件分岐・計算)をしたい」場合はOpenステートメント、「とにかく速く、そのままの形で取り込みたい」場合はQueryTables(またはPower Query)、という住み分けになります。
06 ENCODING ISSUES 【要注意】文字化けの正体と対処法 Shift-JISとUTF-8、2つの文字コードのすれ違いが原因
CSV取込でつまずく最大の原因の一つが文字化けです。取り込んだはずのデータが「譁?蟄怜喧縺?」のような意味不明な文字列になってしまう現象で、原因のほとんどは文字コードのすれ違いにあります。
📚 用語解説
文字コード:コンピュータが文字を「数値」として扱うための対応表のルール。日本語Windows環境のExcelマクロは伝統的にShift-JISという文字コードを前提に動く場面が多い一方、近年のWebサービスやクラウドツールが出力するCSVはUTF-8という文字コードで書き出されることが増えている。この前提のズレが「文字化け」の主原因になる。
前章で紹介したOpenステートメントやQueryTablesは、特別な指定をしない限りShift-JIS前提でファイルを読み込みます。ところが、クラウド系の広告管理画面やSaaSツールが出力するCSVはUTF-8で書き出されていることが多く、この前提のズレがそのまま文字化けとして表面化します。
この問題に対処する代表的な方法が、ADODB.Streamという仕組みを使い、文字コードを明示的に指定して読み込むやり方です。
Sub ReadCSV_UTF8()
Dim stream As Object
Dim content As String
Set stream = CreateObject("ADODB.Stream")
stream.Charset = "UTF-8" ' 読み込む文字コードを明示指定
stream.Open
stream.LoadFromFile "C:\Data\ad_report.csv"
content = stream.ReadText ' 文字コード変換済みのテキストとして取得
stream.Close
' content を1行ずつ Split(content, vbCrLf) 等で分解して以降の処理へ
End Sub
📚 用語解説
ADODB.Stream:Windowsに標準搭載されているデータアクセス用の部品(ライブラリ)の一つ。本来はデータベース接続用だが、Charsetプロパティで文字コードを明示的に指定してテキストファイルを読み込む用途でもよく使われる。OpenステートメントやQueryTablesが「暗黙のShift-JIS前提」で動くのに対し、ADODB.Streamは「この文字コードとして読んでください」と明示的に指定できるのが最大の違い。
文字化けの見た目だけで慌てて再取込を繰り返す前に、まず「そもそも取込元のCSVがどの文字コードで出力されているか」を確認してください。SaaSツールのエクスポート設定に「文字コード:UTF-8 / Shift-JIS」の選択肢が用意されている場合は、取込先(VBA側)に合わせて出力側の設定を変える方が、コードを複雑にするより早く解決することもあります。
07 PERFORMANCE TUNING 【要注意】処理が遅くなる原因と高速化のコツ セルへの1件ずつの書き込みが、実は一番のボトルネック
「CSVを読み込むマクロを組んだが、数千行になると処理が固まったように遅くなる」——これもVBAでのCSV取込でよく相談される悩みです。原因の多くは、Excelのセルに1件ずつ値を書き込む処理そのものが重いことにあります。
セルへの書き込みが1件発生するたびに、Excelは画面の再描画や再計算といった内部処理を行います。これを数千回・数万回繰り返すと、その積み重ねだけで処理時間が大きく伸びてしまいます。窓口業務にたとえるなら、伝票を1枚受け取るたびに台帳を閉じて開き直し、いちいち帳簿を見直しているような状態です。
📚 用語解説
配列(Array)バッファリング:セルに1件ずつ書き込むのではなく、いったんメモリ上の「配列」というデータの入れ物にすべての行をため込んでおき、最後にまとめて1回でシートへ書き出す方法。台帳を都度開閉するのではなく、伝票をすべて仮の箱に集めてから、最後に一気に台帳へ転記するイメージ。書き込み回数が数千回から1回に減るため、処理速度が大幅に改善する。
この考え方に基づいた改善版のコードが以下です。1行ずつセルに書き込むのではなく、いったん配列にため込んでから、最後に範囲へ一括で書き込みます。
Sub ImportCSV_FastArray()
Dim filePath As String, fileNo As Integer
Dim strLine As String, fields() As String
Dim buffer() As Variant
Dim r As Long, maxRows As Long
filePath = "C:\Data\bank_export.csv"
maxRows = 50000
ReDim buffer(1 To maxRows, 1 To 3)
Application.ScreenUpdating = False ' 画面の再描画を止める
Application.Calculation = xlCalculationManual ' 自動再計算を止める
fileNo = FreeFile
Open filePath For Input As #fileNo
r = 0
Do Until EOF(fileNo)
r = r + 1
Line Input #fileNo, strLine
fields = Split(strLine, ",")
buffer(r, 1) = fields(0)
buffer(r, 2) = fields(1)
buffer(r, 3) = fields(2)
Loop
Close #fileNo
Range("A1").Resize(r, 3).Value = buffer ' 配列を一括でシートへ書き込む
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
ポイントは3つです。①セルへの書き込み回数を最小化する(配列にため込んで一括書き込み)、②画面の再描画(ScreenUpdating)を処理中だけ止める、③自動再計算(Calculation)を処理中だけ手動に切り替える。この3点を組み合わせるだけで、数千行のCSV取込でも体感で数倍から数十倍の速度差が出ることがあります。
原因を特定
セル書込みの
繰り返しが主因
ため込む
1件ずつ書かず
メモリ上に保持
一時停止
処理中だけ
OFFにする
一括書き込み
Range.Value=
配列で1回だけ
Application.ScreenUpdatingやApplication.Calculationを処理の途中でOffにしたまま、エラーで処理が中断すると、Excel全体の画面更新が止まったままになったり、再計算されない状態が続いたりします。マクロの最後だけでなく、エラー処理(On Error)の中でも必ずTrue・Automaticに戻す処理を入れてください。
ここまでの「配列バッファリング」や「画面更新の一時停止」は、効果は大きいものの、非エンジニアの方が独学でゼロから書くにはやや難易度が高い領域です。こうした高速化のテクニック自体も、後述するようにClaude Codeに「このマクロを速くしたい」と相談することで、都度コードを組み直してもらうことができます。
08 COMMON PITFALLS 【独自】実務でよくあるCSV取込の落とし穴・3つの罠 つまずきやすいポイントとチェックリスト
VBAでCSV取込の仕組みを一度組んでも、実務で使い続けるうちに共通してつまずくポイントがあります。ここでは代表的な3つの罠と、その回避方法を整理します。
8-1. 罠1:ファイルパスの直書きで、担当者しか直せなくなる
サンプルコードのようにfilePath = "C:\Data\bank_export.csv"とファイルの場所を直接書き込んでしまうと、ファイルの保存場所が変わったりPCが変わったりするたびに、コードを書き換える必要が出てきます。マクロを組んだ本人が退職・異動すると、誰も直せなくなってしまうケースをよく見かけます。
8-2. 罠2:CSVのフォーマットが微妙に変わり、マクロが壊れる
広告管理画面やSaaSツールの仕様変更で、CSVの列の並び順や項目名が予告なく変わることがあります。「3列目が必ず金額」という前提でコードを書いていると、この変更だけでマクロが正しく動かなくなったり、気づかないまま誤った列にデータが入ったりする事故につながります。
8-3. 罠3:エラー処理を入れず、途中で止まって原因不明になる
CSVファイルが見つからない、空行が混ざっている、想定外の記号が含まれている——こうした「想定外のデータ」が1件でもあると、エラー処理(On Error)を入れていないマクロはそこで停止してしまいます。非エンジニアの担当者が急にエラーメッセージを見せられても、原因を特定できず作業が止まってしまうのが典型的な事故パターンです。
直書きされていないか
変更に耐えられるか
入っているか
原因を追えるか
VBAマクロの最大のリスクは、動かなくなったこと自体よりも「直せる人が社内に一人しかいない」状態です。属人化したマクロは、その担当者が休んだ・辞めた瞬間に業務が止まります。10章以降で紹介するように、コードを都度AIに読んで直してもらえる体制を作っておくと、この属人化リスク自体を大きく下げられます。
09 GENAI CASE DATA 【独自データ】GENAI実運用におけるデータ取込業務の実態 CSV・データ取込にどれだけの業務時間がかかっていたか
ここでは、弊社(株式会社GENAI)が実際に日々のデータ取込・集計作業にどの程度の業務時間を費やしていたか、社内の実運用データをもとに紹介します。CSV取込そのものはVBAで自動化できても、「取り込んだ後、何を集計し、どう報告するか」という後工程の時間が見えにくいコストになっているケースが多くあります。
| 項目 | 内容 |
|---|---|
| 利用プラン | Claude Max 20x(月額$200/約30,000円) |
| 利用開始 | 2025年後半〜 |
| 適用範囲 | 経営・営業・広告・開発・経理・秘書業務・個人業務まで全社 |
| データ取込関連の主な用途 | 広告レポートCSVの集計・経費/請求データの取込・売上データの整形 |
弊社では複数の広告アカウント・会計ツールを運用しており、「配信レポートCSVを取り込んで週次で集計する」「経費・請求データのCSVを会計ソフトに反映する」といった作業が定常的に発生します。以前はこうした作業のたびに、担当者がマクロを実行し、出力結果を目視で確認し、報告用に整理し直すという手順を踏んでいました。
| 業務領域 | 主な用途 | 概算削減時間(肌感ベース) |
|---|---|---|
| 広告運用(データ取込含む) | 週次レポートCSVの取込・CPA分析・配信内容調整 | 週10h → 週1h |
| 経理(データ取込含む) | 請求書チェック・経費仕訳・Freee連携 | 月40h → 月5h |
| 開発(VBA/スクリプト保守) | CSV取込マクロの書き捨て・修正対応 | 都度数時間削減 |
上記は弊社の肌感ベースの数値であり、業種・業態・担当者のスキルによって削減時間は変動します。「完全自動化」ではなく、人間のレビュー・最終判断を伴う運用である点にもご留意ください。
特にCSV取込・データ整形は、本記事で紹介した「区切り文字・文字コードの確認」「フォーマット変更への対応」「異常値のチェック」といった判断がそのまま活きる領域です。ただし実務では、「今回のCSVはどの方法(Open/QueryTables)で読むべきか、どこまで自動整形すべきか」を都度考える作業が、これまでのボトルネックでした。
10 WITH CLAUDE CODE マクロを書かず・直さず、日本語で伝えるだけでClaude CodeがCSVを処理する Openステートメント・QueryTables・ADODB.Streamの使い分けを暗記しなくても、目的さえ言えれば処理される
ここまで見てきたとおり、CSVファイルの読み込みそのものはシンプルでも、Openステートメントとの向き不向き・QueryTablesとの使い分け・文字コードの見極め・配列バッファリングによる高速化・エラー処理の作り込みなど、正しく安定運用するには気をつけるべき点が少なくありません。8章で挙げたような「ファイルパスの直書き」「フォーマット変更への非対応」「エラー処理不足」といった落とし穴を踏まずに、毎回正確なマクロを書き続けるのは、コード作成に慣れていない人ほどハードルが高いのが実情です。
この「CSVの中身を確認し、適切な読み込み方法を選び、文字コード・速度の問題に対処し、結果を業務の言葉で報告する」という一連の作業は、Claude Codeのようなエージェント型AIツールに日本語でそのまま依頼できる領域です。VBAのOpenステートメント・QueryTables・ADODB.Streamの構文を暗記する必要はなく、「このCSVファイルを読み込んで、部署ごとの集計表を作って」「このCSVが文字化けするので直して」という要件をそのまま伝えるだけで、どの方法をどう組み合わせるべきかまで含めて処理し、結果を報告してもらえます。
📚 用語解説
Claude Code:Anthropic社が提供するAIエージェントツール。チャット形式で「〇〇のCSVを取り込んで集計して」と指示するだけで、必要な処理内容を判断し、実際にファイルを読み込んで加工し、結果を人間向けの言葉に整理して報告するところまでを自律的に行う。ターミナル操作が必要な開発者向けの版だけでなく、ターミナル操作が不要なデスクトップ版も提供されており、非エンジニアでも日本語の指示だけでCSV処理を任せられる。VBAのOpenステートメントとQueryTablesの違いや、文字コードの構文を暗記していなくても、目的を伝えるだけで正しい処理結果が得られる。
// Claude Codeへの依頼イメージ(実際はチャットで日本語のまま指示するだけ) // 依頼例: // 「このCSVファイル(bank_export.csv)を開いて、日付・金額・摘要の3列を // 月ごとに集計してください。広告費と経費を分けて、 // 合計金額も一番下に出してほしいです」 // Claude Codeが行う処理イメージ: // 1. CSVファイルの中身・文字コード・区切り文字を確認 // 2. 内容に応じて適切な読み込み方法を選択(大量データなら配列バッファリングも考慮) // 3. 「広告費」「経費」等の摘要をキーに月次で仕分け・集計 // 4. 結果を業務の言葉でまとめて報告 // (例:「8月の広告費合計は◯◯円、経費合計は◯◯円でした。 // 3行、日付の形式が異なるデータがあったため、 // 今回は除外して集計しています。ご確認ください」)
この依頼の中で、「文字コードをどう判断するか」「行数が多い場合にどう速く処理するか」「フォーマットが崩れたデータをどう扱うか」といった、この記事で説明してきた判断がすべて自動的に反映されている点に注目してください。Openステートメント・QueryTables・ADODB.Streamの違いを一つひとつ覚えていなくても、目的さえ言語化できれば正確な処理結果にたどり着けます。
「このCSVを読み込んで」とだけ伝えるより、「月次で集計したい」「文字化けを直したい」「別のExcelシートと突き合わせたい」など取り込んだ後の目的も一緒に伝えると、Claude Codeが目的に応じた処理方法(集計方法・整形方法・エラー時の扱い)を判断してくれるため、より精度の高い処理結果が得られます。
11 PRACTICAL WORKFLOW Claude CodeにCSV取込・集計を任せる実践フロー VBA不要・ターミナル操作なしで完結する4ステップ
「CSV取込の自動化が大事なのは分かったが、VBAは書けないので導入が不安」という方向けに、実際にどのような手順でCSV処理を任せていくのかを整理します。ターミナル(黒い画面)やVBAの知識は一切不要です。
目的を伝える
ファイルと
やりたいこと
内容を確認・処理
文字コード・列構成を
自動で確認
言葉で受け取る
専門用語なしの
集計レポート
仕組み化を依頼
定期実行できる
形に整える
11-1. Step1:まず1つのCSV・1つの目的に絞って具体的に伝える
いきなり「社内のデータ処理を全部自動化して」のような大きな依頼をするのではなく、「この銀行明細CSVを取り込んで、月ごとの入出金を集計して」「この広告レポートCSVの文字化けを直して、部署別に集計して」という1つの具体的な目的から始めるのがコツです。目的が具体的であるほど、精度の高い処理結果がすぐに得られます。
11-2. Step2:出てきた結果を業務の言葉で確認する
Claude CodeはCSVファイルを処理し、結果をそのまま出すのではなく業務の言葉に整理して報告できます。「全体で何件のデータがあり、そのうち何件を集計対象にしたか、除外したデータがあれば理由は何か」といった形で受け取り、内容に不明点があればそのまま質問を重ねて構いません。
11-3. Step3:継続的に使うCSVなら、仕組み化まで依頼する
毎週・毎月同じ形式のCSVを取り込む業務であれば、1回きりの処理ではなく、繰り返し使えるスクリプトとして整えてもらうことも依頼できます。「この処理を毎回同じ手順でできるようにしてほしい」と伝えれば、次回以降は同じCSVを渡すだけで同じ集計を再現できるようになります。
11-4. Step4:フォーマット変更や不具合が出たら、その都度相談する
8章で触れたとおり、CSVのフォーマットは外部システムの仕様変更で予告なく変わることがあります。「いつもと集計結果が合わない」「急にエラーになった」といった状況が起きたら、そのCSVと状況をそのままClaude Codeに伝えれば、原因の切り分けから修正までを担当者自身で行う必要はありません。
弊社では、こうした「CSVファイルの取込・集計」についても、方法の選定から実際の処理、報告のとりまとめまでをClaude Codeに任せる形で運用しています。9章で紹介した広告運用・経理領域の削減事例も、こうした地道なデータ処理作業の積み重ねによるものです。
12 CONCLUSION まとめ CSV取込は「構文の暗記」ではなく「目的の言語化」が本質
この記事では、ExcelVBAでCSVファイルを読み込む方法として、Openステートメント・QueryTablesの違い、文字化け・処理速度への対処法、実務でつまずきやすい罠、そして弊社GENAIの実運用事例までを整理しました。最後にポイントを振り返ります。
CSV取込のVBAコード自体は種類が多いわけではありませんが、Openステートメントの向き不向き、QueryTablesとの使い分け、文字コード・速度・エラー処理まで含めると、正しく運用するには意外と多くの注意点があります。まずは自社に届くCSVで「今、どの方法で取り込み、どこに時間がかかっているか」を一度棚卸ししてみるところから始めてみてください。
自社のCSV取込・データ処理、Claude Codeで一緒に自動化しませんか
「毎月・毎週届くCSVの転記作業に時間を取られている」「VBAマクロが担当者しか直せず不安」——弊社AI鬼管理では、Claude Codeを使ったCSV取込・データ処理の自動化から、業務全体の導入支援までを行っています。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. Openステートメントの方法とQueryTablesの方法、結局どちらを使えばいいですか?
A. データ量と加工の複雑さで判断します。数百行程度で、読み込みながら項目ごとに細かい条件分岐や計算をしたい場合はOpenステートメントが向いています。数千行以上をとにかく速く、そのままの形で取り込みたい場合はQueryTables(または近年のPower Query)が向いています。どちらか一方が常に正解というわけではなく、CSVの規模と用途で使い分けるのが実務的な判断です。
Q. CSVファイルを読み込むと文字化けするのはなぜですか?
A. 多くの場合、文字コードの不一致が原因です。日本語Windows環境のVBA処理は伝統的にShift-JISを前提に動く一方、クラウド系ツールが出力するCSVはUTF-8で書き出されていることが増えています。この前提のズレが文字化けとして表面化します。ADODB.Streamで読み込む文字コードを明示指定するか、取込元の出力設定を確認することで解決できます。
Q. VBAでCSVを読み込む処理が重い・遅いのはなぜですか?
A. 最大の原因は、Excelのセルに1件ずつ値を書き込む処理そのものです。書き込みのたびに画面の再描画・再計算が発生し、これが数千回積み重なると大きな処理時間になります。いったん配列にデータをため込んでから最後に一括でセル範囲へ書き込み、処理中は画面更新(ScreenUpdating)と自動再計算(Calculation)を止めることで、体感で数倍から数十倍の速度改善が見込めます。
Q. VBAを書けなくてもCSVの取込作業を自動化できますか?
A. できます。Claude Codeのようなエージェント型AIツールであれば、「このCSVを取り込んで月ごとに集計して」と日本語で伝えるだけで、適切な読み込み方法・文字コード・集計方法を判断して処理し、結果を業務の言葉で報告してもらえます。VBAの構文を暗記していなくても、取り込みたい目的を言語化できれば十分です。
Q. Claude CodeにCSVファイルを渡すだけで集計までしてもらえますか?
A. はい。ファイルを読み込ませた上で「月ごとに集計して」「広告費と経費を分けて」など具体的な要望を伝えれば、集計・整形まで一連で対応できます。取り込んだ後に何をしたいかを一緒に伝えるほど、精度の高い結果が得られます。
Q. 毎月フォーマットが微妙に変わるCSVにも対応できますか?
A. 対応できます。外部システムの仕様変更でCSVの列順や項目名が変わることはよくありますが、その都度「いつもと集計が合わない」と状況を伝えれば、原因の切り分けから修正までをまとめて依頼できます。自分でコードを読み解いて修正箇所を探す必要はありません。
Q. 既存のVBAマクロが動かなくなった場合もClaude Codeに直してもらえますか?
A. はい。既存のマクロと、起きているエラーや不具合の内容を伝えれば、原因を確認した上で修正案を提示してもらえます。属人化して「作った本人しか直せない」状態になっているマクロほど、こうした形でメンテナンス性を確保しておく価値が大きくなります。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




