Excel VBAでファイルを読み込む方法は複数ありますが、文字コードの指定が必要な場合や細かく制御したい場合には ADODB.Stream を使う方法が有効です。
本記事では、ADODB.Stream オブジェクトを使用してUTF-8形式のCSVファイルを読み込み、Excelシートに展開する方法をご紹介いたします。
想定するシナリオ
- 読み込む対象は「data_utf8.csv」というUTF-8エンコードされたファイル
- コンマ区切り(CSV形式)で1行ずつ読み取り
- セルに1行ずつ分割して貼り付け
VBAコード:Streamで読み込み → シートに展開
Sub LoadUTF8CSVWithStream()
Dim bufferText As String
Dim lines As Variant
Dim rowParts As Variant
Dim i As Long
Dim targetCell As Range
' UTF-8ファイルの読み込み
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Type = 2 ' テキストモード
.Open
.LoadFromFile ThisWorkbook.Path & "\data_utf8.csv"
bufferText = .ReadText
.Close
End With
' セルの書き込み開始位置を設定(ここではA1)
Set targetCell = ThisWorkbook.Worksheets(1).Range("A1")
' 行単位で分割
lines = Split(bufferText, vbCrLf)
For i = 0 To UBound(lines)
rowParts = Split(lines(i), ",")
targetCell.Offset(i, 0).Resize(1, UBound(rowParts) + 1).Value = rowParts
Next
End Sub
ポイント解説
CreateObject("ADODB.Stream")を使用してテキストファイルを読み込む.Charset = "UTF-8"を指定することで、UTF-8形式のファイルも文字化けせずに読み込める- 行単位に分割し、各行をカンマ区切りでセルに貼り付け
OffsetとResizeを併用することで行単位の貼り付けが簡潔
この方法が役立つ場面
| シチュエーション | なぜ有効か |
|---|---|
| UTF-8ファイルを正確に読みたい | Workbooks.OpenText より柔軟に対応 |
| 内容をプレビューや加工してから貼り付けたい | 一度文字列として読み込めるため |
| セルにカスタム配置したい | Offset と Resize で制御可能 |
注意点
- ADODB.Stream は VBA で使えるCOMオブジェクトですが、PCによってはライブラリ登録が必要な場合があります。
- UTF-8 BOM 付き・無しどちらにも基本的に対応できますが、文字化けが発生する場合は
ADODB.Streamの代わりにScripting.FileSystemObjectを使う方法も検討してください。 - ファイルに空行があると
Split()の結果に空文字列が含まれるため、エラー処理を加えるとより堅牢になります。
まとめ
ADODB.Stream を使えば、Excel VBA でUTF-8のCSVファイルを文字化けさせずに正確に読み込むことが可能です。また、読み込んだデータをプログラム的に操作・整形できるため、柔軟なデータ処理が求められるシーンで大変有効です。
外部システムとのデータ連携や定型帳票作成などにぜひご活用ください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
