2022.03.28スポンサーリンクVBAを使用したCSVデータ(拡張子txt)の一括読み込み方法について備忘録的に紹介していきたいと思います。#ステートメントを使ったコードを紹介しました。まとめ1VBAを使用したCSVデータの一括読み込み方法について紹介しています。ym-pc.com2022.03.25VBAを使ったCSVデータの読み込み(データ要素内の「,」「”」処理)はこちら↓↓VBAを使ったCSVデータの読み込み「,」「”」処理VBAでCSVデータを読み込みたい場合に、データ要素内に「,(カンマ)」や「”()ダブルクォート」が存在している場合の対処方法について解説しています。Streamオブジェクトを使った方法を紹介します。拡張子を取得してファイルを選別TextStreamオブジェクト読み込みのループまとめSHIFT-JIS(ANSI)カンマ区切りテキストファイル3つを一括してエクセルに読み込むSHIFT-JIS(ANSI)カンマ区切りテキストファイルの3ファイルを一括してエクセルに読み込んでみたいと思います。(インプット先のエクセル(CSV連結マクロ.xlsm)に同一フォルダ内の「うまい棒一覧データ」を読み込みます。)フォルダ内のファイルCSVファイルのデータ内容3つのテキストファイルには上記のように日付ごとのデータが入っています。Subスポンサーリンクファイルシステムオブジェクトファイルシステムオブジェクト(以下FSO)とは、フォルダーやファイル、ドライブを操作するためのオブジェクトです。オブジェクトなので、例えばワークブックやワークシート、セルと同じ位置づけです。それらにプロパティやメソッドが存在するのと一緒で、FSOにもファイル等を操作するプロパティやメソッドが存在します。TextFileメソッド(コード:17行目)6TextStreamオブジェクトとして開いたファイルの読み込み位置を1行移動させるSkipLineメソッド(コード:18行目)7TextStreamオブジェクトとして開いたファイルの読み込み位置がテキストファイルの末尾かどうかを調べるAtEndOfStreamプロパティ(コード:19行目)8TextStreamオブジェクトとして開いたファイルを1行ずつ読み込むReadLineメソッド(コード:20行目)このようになります。ここで疑問なのは、フォルダオブジェクト、TextStreamオブジェクトが混ざっているという点です。オブジェクトの中にオブジェクトがあります。FSOのオブジェクト構成FSOの構成として以下のようになっています。ファイルシステムオブジェクト・・・最上位オブジェクトDriveオブジェクト・・ドライブを表すオブジェクトFolderオブジェクト・・フォルダを取得するオブジェクトFileオブジェクト・・ファイルを取得するオブジェクトTextStreamオブジェクト・・テキストファイルを取得するオブジェクトつまり、FSOはファイルやフォルダなどを操作するオブジェクトですが、FSOで実際にファイルやフォルダ、TextStream(テキストファイルの読み書き)操作するためには、それらのオブジェクトを取得・呼び出さないといけないというわけです。(※それぞれの取得メソッドは赤字部分です。)FSOは最上位オブジェクトなので、必ずFSOを取得してから、その他の下位オブジェクトを取得するとう順番です。上記の2つの方法から選べます。1は実行時バインディング、2は遅延バインディングと言います。1の参照設定はブックごとに行う必要があります。ブックを変えてFSOを使う場合はブックを変える度に参照設定を行うということです。どちらの方法でも良いと思いますが、1の利点としてはVBEのインテリセンス機能が使えて自動メンバー表示されます。IfApplication.fileDialog(filedialogtype)は、エクスプローラーを開いてフォルダーを選択する動作です。【使用できる定数一覧】msoFileDialogFilePicker。ユーザーがファイルを選択するのを許可します。msoFileDialogFolderPicker。ユーザーがフォルダーを選択するのを許可します。msoFileDialogOpen。ユーザーがファイルを開くのを許可します。msoFileDialogSaveAs。(Excel)OfficeVBAリファレンストピックlearn.microsoft.comファイル選択・フォルダ選択の詳細記事はこちら↓VBAファイルを開く方法まとめ2Application内のFileDialogオブジェクトについて、プロパティ、メソッドの活用方法をコードを使って紹介しています。'For~Each文でフォルダ内のファイルを1つずつ取り出す先に述べたGetFolderメソッドでファイルシステムオブジェクトとしてフォルダを取得します。FSOとしてフォルダを取得しないとフォルダオブジェクトのプロパティ、メソッドが使えません。Eachで1つずつファイルを取り出していきます。(filesコレクションはファイルの集合体のことです。)余談ですが、FSOを扱う場合、これはFSOのプロパティなのか?フォルダオブジェクトのメソッド?プロパティ?ファイルオブジェクトの呼び出し方は?みたいな形でどのオブジェクトのプロパティなのか?メソッドなのか?ということを整理しながら使うことが大事です。'拡張子がtxtならばFSOのGetExtensionNameメソッドで拡張子txtのみを選別します。これについてはフォルダの中にテキストファイル以外のファイルが入っている場合に有効です。今回はインプット先の「CSV連結マクロ.xlsm」、「アポロチョコ一覧.csv」は除外ですね。'タイトル行除外TextStreamオブジェクトはテキストファイルの読み込みや書き込みをするためのオブジェクトです。コード:5行目のようにTextStreamオブジェクト変数を宣言します。コード:17行目のようにOpenTextFileメソッドで、テキストファイルを指定のモード(定数)で開きます。書き込み(追記)モードでテキストファイルを開く定数Create・・・テキストファイルが存在しない場合の動作を指定(省略可)コード:18行目はTextStreamオブジェクトのSkipLineメソッドです。読込位置を1行下に移動させます。Loopコード:19行目はTextStreamオブジェクトのAtEndOfStreamプロパティで、テキストファイルの末尾にある場合はTrueを返します。よって、末尾になるまでループということですね。コード:20行目はTextStreamオブジェクトのReadLineメソッドです。1行ずつ読み込んで配列変数に格納しています。Objects)とSQLを使ったCSVファイルの読込の基本方法について紹介します。ym-pc.com2023.11.18スポンサーリンクまとめ今回はファイルシステムオブジェクトのTextStreamオブジェクトを使ったCSVデータ(テキストファイル)の読み込み方法についてまとめてみました。次回はADODB.Streamオブジェクトを使ったcsvデータ読込方法と文字化け対策(文字コード自動判定機能)について紹介します。まとめ3CSVテキストファイルを文字コードを指定して読み込む方法と各ファイルの文字コードを自動判定して読み込む方法を紹介しています。まとめ3CSVテキストファイルを文字コードを指定して読み込む方法と各ファイルの文字コードを自動判定して読み込む方法を紹介しています。Excelピボットテーブルのスライサーとタイムライン(複数テーブル連携のためのレポート接続)ピボットテーブルのスライサーとタイムラインについての基本的な使い方と複数のピボットテーブルを用いたレポートの接続方法について簡潔に紹介しています。テーブル機能3~関数における参照について~Excelで集計する際に使うと便利なテーブル機能について紹介します。今回は関数における参照についての注意点と名前の定義について簡潔に紹介します。まとめ1VBAを使用したCSVデータの一括読み込み方法について紹介しています。ExcelExcelマクロ(VBA)で作る管理システム3-1ユーザーフォームのボタンの移動について解説しています。ExcelExcelVBAのクラスモジュールの基本2VBAのクラスモジュールの使いどころが分からない、必要性がわからないといった方向けにクラスの使いどころや利便性を実際のコード(クラス有り、無し)を使って解説しています。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。雑記.メニューホームアクセスお問い合わせプロフィールホーム検索トップサイドバ。