日本語VBAでテキストを エクセルからファイルに出力 してみよう!将来的にはCSVも・・・

Pocket

序文

こんにちは、Webプログラマー/コーダーのKaBAです。

今までの解説では、直接エクセルを操作することをベースに解説していましたが、今回はテキストファイルへテキストを出力する練習をしてみたいと思います。

エクセルからテキストを出力できると何が嬉しいかというと、何より他のツールとの連携がとれる点です。

一番の有名どころといえば、CVSデータファイルでしょうか。

CSVはカンマで区切られた値がずーっと並んだ行と列で出来ています。

カンマで区切られた範囲がエクセルのセルに対応します。

ホラ、他のツールでCSVを加工すればエクセルのデータを加工したことになるのです。

今回はそこまで複雑なことはしませんのでご安心ください。

簡単なファイル出力例を2例ご紹介します。

それではいってみましょう!

ファイルにテキストを出力する

ファイルを開く構造

日本語VBAでは基本的に、ファイルを開く際に、スタック形式でファイル名を保持しています。

ファイルスタック
ファイルスタック

上図のようにファイルを開く度にそのファイルがスタックの先頭になり、出力先はスタックの先頭のファイルになります。

この間、「io_入出力.ファイル1行出力」メソッドの出力先は、Out3.txtになります。

ファイルを閉じると、スタックをポップします。

ポップし、Out2.txtが有効に
ポップし、Out2.txtが有効に

io_入出力.ファイル閉じる」を実行するとOut3.txtは閉じます。ファイルスタックは1つポップし、Out2.txtが先頭になります。

以後のファイル出力操作の対象はOut2.txtになります。

実際のソース

実際のソースコードを見てみましょう。

実際にここまで複雑に書くことはめったにありませんが、

「io_入出力.ファイル書込用開く」と「io_入出力.ファイル閉じる」までの間が、そのファイルのファイルスタック上で有効になっている期間を示しています。

 

さらに複雑な実際のソース例

後学のため、さらに複雑なソースコードの例をあげてみます。

なお、みなさんはこんなことをやる必要はまったくございません

まとめ

ファイルを扱う時は、日本語VBA独自ファイルスタックという制約がある点があることを説明してきました。

実は、ファイルを開く際に返されるファイル名FNを保持していれば、ファイルスタックに関係なく、ファイルにテキストを出力できます。

このように、fn1fn2の変数さえ保持していれば、ファイルスタックの制限に関係なく、入出力可能です。

ファイルスタックは簡易バージョンのファイルアクセス操作方法なのでした。

両方試されてお好きな方法をお試しください。

それではー またー (^_^)

 

The following two tabs change content below.
KaBA@フリーランス修行中

KaBA@フリーランス修行中

こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。 このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。