Excel VBA QueryTableを使用してテキストファイルを読み込む

スポンサーリンク
スポンサーリンク

QueryTable【クエリテーブル】を使用してテキストファイルを読み込む方法

テキストファイルをワークシートに読み込む方法は
WorkbooksコレクションのOpenText【オープンテキスト】メソッドなどを使用する
方法もありますが、ここでは「外部データの取り込み」を表す
QueryTable【クエリテーブル】オブジェクトを利用して
ワークシートにテキストファイルを読み込む方法について解説します。

QueryTable【クエリテーブル】を使用してテキストファイルを読み込む手順

1.QueryTabls【クエリーテブルズ】コレクションのAdd【アド】メソッド
使用して、新しいデータベースクエリ(QueryTableオブジェクト)を作成します。
Query【クエリ】は「問い合わせ」という意味があり
Table【テーブル】は「表」という意味があります。


2.作成されたQueryTable【クエリテーブル】オブジェクトに対して
テキストを設定するプロパティを使用して読み込みの設定をします。


3.QueryTable【クエリテーブル】オブジェクトの
Refresh【リフレッシュ】メソッドを使用して
QueryTable【クエリテーブル】オブジェクトを更新して
ワークシートに内容を表示します。


4. QueryTable【クエリテーブル】オブジェクトの
Delete【デリイト】メソッドを使用して
QueryTable【クエリテーブル】オブジェクトを削除します。


QueryTable【クエリテーブル】オブジェクトでCSVファイルをワークシートに読み込み例

※CSVとは「Comma Separated Value」【カンマ セパレーテッド バリュー】の略で
「,」カンマ区切りの値という意味で、さまざまなアプリケーション間での
データの受け渡しに利用されるファイル形式です。



「各店売上.csv」テキストファイルをワークシートに読み込むコード例

Sub テキスト読み込み()
With ActiveSheet.QueryTables.Add _
(Connection:="TEXT;" & ThisWorkbook.Path & "¥各店売上.csv", _
Destination:=Range("A1"))
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = Array(5, 2, 1)
.Refresh
.Delete
End With
End Sub

コードの解説

2行目~4行目
【With ActiveSheet.QueryTables.Add _
(Connection:=”TEXT;” & ThisWorkbook.Path & “¥各店売上.csv”, _
Destination:=Range(“A1”))】

QueryTables【クエリテーブルズ】コレクションのAdd【アド】メソッドを使用して
新しいQueryTable【クエリテーブル】オブジェクトを追加して
Withステートメントで指定します。
引数のConnection【コネクション】には
接続するデータの種類とデータの場所を
接続文字列として指定します。
接続するデータの種類はCSVファイルはテキストデータなので
「”TEXT;”」と指定します。
データの場所(パス)は
WorkbookオブジェクトのPath【パス】プロパティを使用して
「ThisWorkbook」つまり、このコードが記述されている
ブックと同じ場所(パス)にある
「各店売上.csv」を指定します。
引数Destination【ディスティネーション】には
QueryTable【クエリテーブル】オブジェクト内のデータを返す
セルをRangeオブジェクトで指定します。
ここではA1セルに指定します。


5行目
【.TextFileCommaDelimiter = True】

QueryTableオブジェクトの
TextFileCommaDelimiter【テキスチファイルカンマデリミタ】プロパティに
Trueを設定することでデータの区切り位置を
カンマに指定します。


6行目
【.TextFileColumnDataTypes = Array(5, 2, 1)】

QueryTableオブジェクトの
TextFileColumnDataTypes【テキストファイルカラムデータタイプス】プロパティに
データの各列に適用するデータ型を
Array関数を使用して1列目から順に配列に格納して設定します。
設定値はXlColumnDataType 列挙型の値または定数を使用します。


7行目
【.Refresh】

QueryTableオブジェクトの
Refresh【リフレッシュ】メソッドを使用して
各プロパティで設定した内容を反映して
QueryTableオブジェクトを更新し
ワークシートに内容を書き込みます。


8行目
【.Delete】
Refresh【リフレッシュ】メソッドで
ワークシートにQueryTableオブジェクトの
データの書き込みが終了したので
QueryTableオブジェクトの
Delete【デリイト】メソッドで
QueryTableオブジェクトを削除します。


実行結果


以上で
QueryTableを使用してテキストファイルを読み込む方法についての
解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク