【ExcelVBA入門】QueryTablesメソッドで高速にファイルを読み込む方法

皆さんは、VBAのQueryTablesメソッドを使って高速にファイルを読み込む方法を知っていますか?

QueryTablesメソッドを使えば簡単にファイルを読み込むことができるのでおすすめです!

そこで今回は、

  • QueryTablesメソッドの基礎的な使い方
  • QueryTablesメソッドを使ったサンプルコード
  • エラーが出たときの対処方法について
  • マクロの記録を使って速くコードを書く方法

といった基礎的なことから、応用的な方法まで、徹底的に解説します!

VBAでファイルを読み込む方法

VBAでは、ファイルを読み込む方法が大きく分けて2つあります。

  • Openメソッドを使って1行ずつデータを読み込む
  • QueryTablesメソッドを使ってファイルを読み込む


それぞれ、次のようなメリットがあります。

  • Openメソッド:シンプルな使い方でわかりやすい
  • QueryTablesメソッド:処理速度が圧倒的に速い


ファイル読み込みで検索すると、最初にOpenメソッドの使い方が出てくるケースが多いため、Openメソッドを使っている方も多いです。

ただ、処理が速いのはQueryTablesメソッドなので、CSV読み込みなど大規模データを取り込む場合は、QueryTablesメソッドを使うのがおすすめです!

今回は、QueryTablesメソッドの使い方に特化して解説するので、Openメソッドについて気になる方は以下を見てみてくださいね!

【VBA入門】OpenメソッドでテキストファイルやCSVの読み込み
更新日 : 2019年5月26日

QueryTablesメソッドの使い方

次に、QueryTablesメソッドの使い方について解説します。

QueryTablesメソッドは読み込むファイル指定したあと、プロパティ・メソッドで詳細な設定を追加して使います。

AddメソッドConnectionで読み込むファイル形式・ファイルパスを設定し、Destinationで値の貼り付け開始位置を指定します。

プロパティ・メソッドは数が多いので、よく使うものだけ抜粋して一覧化しました。

Noプロパティ・メソッド概要
1TextFilePlatform文字コードの指定
・932:Shift_JIS
・65001:UTF-8
2TextFileParseType区切り文字の方式
・xlDelimited:区切り文字によってファイルが区切る
・xlFixedWidth:ファイルのデータを固定幅の列として認識
3TextFileCommaDelimiterカンマ区切りに設定。True/Falseで指定。
4TextFileTabDelimiterタブ区切りに設定。True/Falseで指定。
5TextFileSemicolonDelimiterセミコロン区切りに設定。True/Falseで指定。
6TextFileSpaceDelimiterスペース区切りに設定。True/Falseで指定。
7TextFileOtherDelimiter区切り文字を指定できるに設定。True/Falseで指定。
8TextFileStartRow読み込み開始行の指定に設定。True/Falseで指定。
9RefreshStyleセルを上書きするか追加するかを設定する
・xlOverwriteCells : セルは追加せず上書きする
・xlInsertDeleteCells : レコードに合わせ行を追加削除する
・xlInsertEntireRows : セル又は行を削除せず、行を挿入する
10FieldNamesフィールド名を列名に設定。True/Falseで指定。
11Refresh実行するとデータを表示する
12Delete読み込むファイルとの接続を解除

サンプルコード

次に、サンプルコードをもとに、具体的な使い方を解説します!

読み込むCSVファイルデータ:

サンプルコード:

実行結果:

このように、簡単にファイルを読み込むことができます。

補足:その他の処理高速化方法とは

QueryTablesメソッドはファイルを高速に読み込むことができる方法なのですが、処理を高速化する方法は他にもあります。

以下で詳しくまとめているので、気になる方は見てみてくださいね!

【ExcelVBA入門】処理の実行時間を高速化する方法を徹底解説!
更新日 : 2019年8月28日

まとめ

今回は、ファイルを高速に読み込むためのQueryTablesメソッドの使い方について解説しました。

ExcelではCSVファイルや、テキストファイルを読み込むケースはよくあります。大規模なデータを使うことも多いので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説