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【クエリテーブル】を使用してテキストファイルを読み込む方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告