EXCEL VBA CSVファイルの読み込み・テキストファイルを開く・ワークシートへ転記(自動読み込み・複数読み込み)

 

 

EXCEL VBA CSVファイルの読み込み・テキストファイルを開く・ワークシートへ転記(OpenTextメゾット自動読み込み・複数読み込み)

 

 

 ●はじめに

今回説明するプログラムは、CSVファイルをEXCELシートへ読み込む方法を説明します。業務で他のアプリケーションのデータをCSVファイルに出力して、その出力したCSVファイルをEXCELに取り込む事は、日常業務で時々発生すると思います。しかし、手動で取り込むと手間も掛かりますので、EXCEL VBAを利用して自動にテキストファイルやCSVファイルを読み込みEXCELシートへ転記する方法をサンプルプログラムを交えて順番に説明いたします。

 

●【EXCEL VBA 連番のテキストファイルを合計ファイルに纏めるについては、下記の参照して下さい】

EXCEL VBA 連番のテキストファイルを合計ファイルに纏める・集計処理・1つのテキストファイルにまとめる(テクニック)

 

●【OpenTextメゾット、下記の参照して下さい・Micosoft参照】
https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbooks.opentext

 

 

 

 

 

 ●書式の説明 (Open Textメゾット)

● WorkBooksコレクションオブジェクト・Open Text メゾットを利用するには、下記の通りに設定を行います。

●OpenTextメゾットパラメータ

引数必須・省略データ型説明
FileName必須String読み込むファイルのファイル名・パスを指定します。
Origin省略可Variantテキストファイルの元のプラットフォームを指定します。
StartRow省略可VariantCSV/テキストファイルを読み込み開始する行番号を指定します。 既定値は 1 です。
DataType省略可Variantファイルに含まれるデータの形式を指定します。 定数は、 XlTextParsingType クラスの xlDelimited または xlFixedWidth です。 引数を省略すると、データの形式が自動的に決められます。
Tab省略可VariantDataType に xlDelimited を指定し、区切り文字にタブを使うときは True を指定します。 既定値は False です。
Semicolon省略可VariantDataType に xlDelimited を指定し、区切り文字にセミコロン (;) を使うときは True を指定します。 既定値は False です。
Comma省略可VariantDataType に xlDelimited を指定し、区切り文字にコンマ (,) を使うときは True を指定します。 既定値は False です。
Space省略可VariantDataType に xlDelimited を指定し、区切り文字にスペースを使うときは True を指定します。 既定値は False です。

 

【使用例】(テキストファイルを開く)※テキストファイルは、新しいブックとして読み込みます。


【サンプルプログラム】

Workbooks.OpenText Filename:=”C:\Sample.txt”, DataType:=xlDelimited, Comma:=True

 

●【使用例】(CSVファイルを開く)※CSVファイルは、新しいブックとして読み込みます。

【サンプルプログラム】

Workbooks.OpenText Filename:=”C:\Sample.csv”, DataType:=xlDelimited, Comma:=True

 

 

 

 

 

EXCEL VBA テキストファイル・CSVファイルの読み込み・プログラムを実行したブックにワークシートを追加してデータ転記

 

 

 

 ●プログラム説明 (サンプル①)

下記のサンプルプログラムは、指定したテキストファイルを読み込み、テキストファイル内容をプログラム実行ブックへワークシートを追加してデータ転記するサンプルプログラムです。

【プログラムの流れ】

①指定したテキストファイル「Sample.TXT」を読み込みます。
②読み込んだテキストファイルをワークシート1番目にセットします。
③プログラムが記載しているブックにテキストファイルのデータがシートに追加されました。

【プログラム実行条件】
① テキストファイルのフルパスを正確に指定します。↓赤字部分
・(Filename:=”C:\Users\akira\OneDrive\デスクトップ\Sample.txt”, DataType:=xlDelimited, Comma:=True)

※テキストファイル(Sample.txt

 

 

 

 

 

 

●実行前~実行後 ※プログラム実行後、指定したテキストファイルを読み込みブックのシートが追加されてテキストファイルをのデータが追記されました。
(画面クリックして拡大)

 

 

 

 

 

EXCEL VBA テキストファイル・CSVファイルの読み込み・プログラムを実行したブックに指定したワークシートにデータ転記

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、指定したCSVファイルを読み込みプログラムを実行したブックに指定したワークシート名「DATA」にCSVファイルを読み込んだデータを転記するサンプルプログラムです。

【プログラムの流れ】

①指定したCSVファイル「Sample.csv」を読み込みます。
②読み込んだCSVファイルのワークブックをセットします。
③読み込んだCSVファイルのワークシート1番目にセットします。(読み取るシートが1番目のため)
④プログラムが記載しているブックの転記先シート名「DATA」をセットします。
⑤データの転記先「DATA」のシート内容をクリアー(全消去)します。
⑥読み込んだCSVファイルの全てのデータ範囲をコピーします。
⑦指定したシート名「DATA」へCSVファイルデータの内容をセル「A1」より貼り付けます。
⑧コピー状態を解除します。
⑨CSVファイルのEXCELブックを閉じます。

【プログラム実行条件】
① テキストファイルのフルパスを正確に指定します。↓赤字部分
・(Filename:=”C:\Users\akira\OneDrive\デスクトップ\Sample.csv”, DataType:=xlDelimited, Comma:=True)

※CSVファイル(Sample.csv

 

 

 

 

 

 ●実行前~実行後 ※指定したCSVファイル「Sample.csv」を読み込み、指定したワークシート「DATA」へ読み込んだCSVファイルデータが転記されました。
(画面クリックして拡大)

 

 

EXCEL VBA 複数のテキストファイル・CSVファイルを読み込み順番にワークシートへデータ転記する。

 

 

 ●プログラム説明 (サンプル③)

下記のサンプルプログラムは、選択したフォルダー内のCSVファイルを順番に読み込み、読み込んだ順番にワークシートへCSVデータを転記するサンプルプログラムです。

 

【プログラムの流れ】

①確認メッセージの無効化します。(読み込むCSVファイルが開いていてもプログラムの停止を防止する為)
②ダイアログボックスが表示されるので、CSVファイルを読み込むファイル(フォルダー)を指定します。
③読み込むフォルダーの確認メッセージが表示されます。
④指定したCSVファイルの一件目を指定します。
⑤フォルダー内の読み込むCSVファイルがなくなるまで繰り返します。
⑥CSVファイルを読み込みます。
⑦読み込んだCSVファイルデータをVBAを実行しているブックのワークシートの最後に順番に追記します。
⑧CSVファイルがなくなるまで繰り返します。⑤へ
⑨確認メッセージを有効化します。

【プログラム実行条件】
・CSVファイルを複数用意します。

 

 

 

 

 ●実行前~実行後  ※プログラム実行後、ダイアログボックスが開いて、CSVファイルが保存されているフォルダーからファイルを選択します。CSVファイルの読み込み確認メッセージが表示されるので、「はい」ボタンをクリックして順番にCSVファイルを読み込みます。読み込んだCSVファイルは、順番に毎シートにCSVデータが転記されました。
(
画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。