コピー2018.08.22みなさん、こんにちは!フジタニ(@libartweb)です。エクセルVBAでQueryTableオブジェクトを使って高速にCSVを取り込む方法をシリーズでお伝えしていきます。前回の記事はこちらエクセルVBAでQueryTableオブジェクトを使って高速にCSVを取り込む方法エクセルVBAを使用したCSVの取り込みは、ループを使用した方法が一般的です。今回紹介するQuertyTableオブジェクトはループを一切使用せずしかも爆速でCSVの取り込みが可能です。tonari-it.com2018.08.17一般的に使われている、ループを使用したCSVの取り込みの他に、QueryTableオブジェクトを使用して、高速にCSVを取り込む方法があることをお伝えしました。QueryTableオブジェクトの概要と、その速さを少しはご理解いただけたと思います。QueryTableオブジェクトにはたくさんのメソッドやプロパティが存在しますので、CSV取り込みでよく使うもののみを取り上げて行きます。:エクセルVBAのQueryTableで高速にCSVを取り込むQueryTableオブジェクトでCSVを取り込む方法QueryTableオブジェクトでCSVを取り込む場合は、クエリテーブルの作成が必要です。クエリテーブルとはMicrosoftの公式ページでは下記の通り解説されています。テーブルが作成されます。テーブルで動的レポートを作成するdocs.microsoft.com「クエリテーブルの作成」とは、エクセルと外部ファイル(今回はCSV)をリンクさせることです。リンクすることでWorksheet上のクエリテーブルにCSVが取り込まれます。このクエリテーブルは、仮想のテーブルで、実際にセルなどには表示されない見えないテーブルです。それでは、クエリテーブルを作成する方法を解説していきます。QueryTables.Addメソッドとは最初にサンプルコードを。SubWorksheetオブジェクト.QueryTablesクエリテーブルを作成するには、WorksheetオブジェクトのQueryTablesプロパティを使って、QueryTableオブジェクトの集まりであるQueryTablesコレクションを参照し、これをオブジェクトとして扱います。QueryTablesコレクション.Add(Connection,Destination,Sql)QueryTablesコレクションのAddメソッドを使用して、WorksheetにQueryTableオブジェクトを追加します。Addメソッドにより、QueryTableオブジェクトが返ります。追加されたQueryTableオブジェクトに対して、CSVの型など様々なプロパティを指定します。(プロパティは次回以降の記事で紹介します)新しいクエリテーブルを作成クエリテーブルにCSVを取り込む出力先のセル位置を取得する以上の流れを実現するメソッドです。図で説明すると下記の通りです。そのうちのConnectionとDestinationについて解説していきます。Sqlはクエリ文字列を指定しますが、CSVの取り込みでは使用しないので省略します。クエリ文字列ConnectionでCSVのパスを指定するCSVのパス名を指定しますが、CSVを取り込む場合は必ず「TEXT;」から記載します。CSVはテキストファイルの一種だからです。「TEXT;」は、エクセルの画面上だと以下の箇所を意味します。TEXT;に続いてファイルのパスを指定します。これで、どのCSVを取り込むか?の指定が完了します。Connectionはエクセルの画面上だと以下のファイル選択ダイアログを表します。Destinationで出力先セルを指定するDestinationは、取り込むCSVファイルをどのWorksheetのどのセル位置を開始位置として取り込むか?を指定できます。ここで指定するWorksheetは、クエリテーブルを作成したWorksheetじゃないとエラーになります。サンプルコードではクエリテーブルの作成先、CSVの出力先両方にSheet1オブジェクトが指定されていますが、これはイコールになっている必要があります。異なるシートを指定すると以下のようなエラーとなりますのでご注意ください。ここで指定したセル位置への出力は、次回以降紹介するQueryTable.Refreshメソッドで行います。この段階ではセル位置を取得するだけです。実行結果では実行結果を見ていきましょう。今回はConnectionで取り込むCSVのパスを指定、Destinationで出力先のセルを指定しました。イミディエイトウィンドウで、正しく取り込まれたかを確認します。※サンプルコードを実行した結果です。以上、クエリテーブルを作成して、そこにCSVを取り込む方法と出力先のセル位置を取得する方法をお伝えしました。次回はクエリテーブルに取り込んだCSVを、指定したセル位置に出力するQueryTable.Refreshメソッドについて解説します!どうぞ、お楽しみに!連載目次:エクセルVBAのQueryTableで高速にCSVを取り込む一般的なループを使用したCSV取り込みよりも、更に高速にCSVを取り込むことのできるQueryTableオブジェクトに関する連載です。サイズの大きなCSVを取り込む際に非常に便利です。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA】シートの追加も削除も、名前さえ変えさせない!VBAでブックの保護を設定する方法エクセルVBAのProtect/Unprotectメソッドを使ったブックの保護設定と、解除の方法をご紹介しています。このメソッドをvbaでの処理のためシートの追加や削除をされたくないエクセルツールに仕込んでおけば、ユーザによる勝手なシートの追加や削除、名前の変更を防ぐことができるようになります。2017.06.07Excel・VBA活用術エクセルVBAでBOM無しのUTF-8でCSVファイルなどを出力する方法エクセルVBAでデータを様々なファイル形式に書き出す方法についてお伝えしています。今回は、エクセルVBAでBOMなしのUTF-8にてCSVファイルを書き出す方法についてお伝えしていきたいと思います。懇切丁寧に解説したいと思います。2015.12.01Excel・VBA活用術エクセルVBAからAccessデータベースのレコードを呼び出して修正して上書き更新する方法エクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。今回はUPDATEのSQL文を使ってAccessデータベースのレコードを呼び出して上書き更新する方法です。【エクセルVBA】ユーザーフォームにコンボボックスを追加する方法ユーザーフォームを作って使ってみるまでを目標に、連載記事でコントロールのメソッドやプロパティ、イベントをご紹介しています。今回の記事では、コンボボックスをフォーム上に追加する方法と、代表的なプロパティをいくつかご紹介しています。ユーザーフォームでツールを作りたいとき、使い勝手のよいコントロールですよ!2020.01.16Excel・VBA活用術エクセルVBAでピボットテーブルを作成!PivotCacheにデータソース範囲をセットするピボットテーブルをVBAで作成する1ステップ目、ピボットテーブルのデータソース範囲を指定する方法をご紹介しています。VBAでピボットテーブルを作成する前提知識として、ピボットキャッシュとは?やデータソースからピボットテーブルが作成される流れも簡単にご紹介しています。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。