CSVファイルをExcel VBAで扱う(3)新規作成したCSVファイルに内容を書き込みする

Excel マクロ、VBA

スポンサーリンク

はじめに

前回の記事では、CSVなどテキストファイルを扱うExcel VBAで、Input構文を使ってテキストファイルの読み込みを行うソースコードを紹介した。

CSVファイルをExcel VBAで扱う(2)CSVファイルの内容を読み込んで処理する

そのときはLine Inputを使って1行ずつ読み込んでいったが、私は1行ずつではなく全ての内容を一気に読み込む(そしてすぐテキストファイルは閉じる)事が多い。

その際に
FileSystemObject.OpenTextFile
ReadAllというものを使うので、今回はそれを取り上げる。

複数のテキストファイルを結合するマクロ

次に示すのが、先述の FileSystemObject.OpenTextFile を用いて、複数のCSVなどテキストファイルの内容を単純に結合するマクロだ。

ソースコード中のコメントにも書いてあるが、このマクロを実施するに当たっては、ExcelのVBEで「ツール」→「参照設定」から「Microsoft Scripting Runtime」を有効にしておくこと。

解説

先述のFileSystemObjectというやつを、FSOという変数に入れている。そして
FileSystemObject.OpenTextFile
というやつを使っていて、その詳しい中身はソースコードのコメントに書いている。

まああまり詳細に意識しなくても、今回紹介した程度の使い方ができれば十分だろう。

そしてOpenTextFileのReadAllというやつで、テキストファイルの内容を、1行ずつではなく全て一気に読み込むことができる。

そして後は、以前に紹介した
Print #1
で、書き込み用のファイルに 書き込んでいるというだけだ。

CSVファイルをExcel VBAで扱う(1)新規作成したCSVファイルに内容を書き込みする

Appendで追加書き込みする

テキストファイルの内容を完全にゼロにしてから新規書き込みするのは、Outputで実行した。

そして私自身はあまり使うことはないが、Appendというのを使えば、ゼロからではなくテキストファイルの一番最後から追加で書き込みをすることができる。

今回は最後に、そのAppendで追加書き込みするマクロを示す。
基本的な内容は以前のOutputによる書き込みマクロとほぼ同じなので、解説は省略する。

スポンサーリンク