VBAでテキストファイルを操作する方法



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^)/

さて、今回はVBAでテキストファイルを操作してみるお話です(^^♪

簡単なツールを作る程度であれば、そこまで頻繁に読み書きすることはないかもしれませんが、VBAエキスパートの問題にも出てきたと思いますので一応覚えておいて損はないでしょう!

テキストファイル操作の手順

テキストファイルの操作の手順は以下の3ステップです。

  1. 操作したいテキストファイルを開く
  2. テキストファイルにデータを読み/書きする
  3. 操作したテキストファイルを閉じる

VBAでテキストファイルを開く

まずはVBAからテキストファイルを開く方法です。

ファイルを開く
この記事でいう「ファイルを開く」というのはExcel上に開くというわけではなく、Windowsにテキストファイルを使いますよと教えてあげるイメージです。

テキストファイルを開くにはOpenステートメントを使います。ブックを開くWorkbooksコレクションのOpenメソッドとは別となります。

VBA Openステートメント

Openステートメントの書式は以下の通りです。

ファイルのフルパス」というのは「Sample.txt」のようにファイル名の拡張子まで指定する方法です。
DドライブにSample.txtがあった場合はこのようになります。

開く方法」には開いたファイルに対してどのような操作を行うかを指定します。

開く方法
Input読み込みモード
Output書き込み(上書き)モード
Append書き込み(追記)モード
Randomランダムアクセスモード
Binaryバイナリモード

処理内容」につきましては、開かれたファイルに対して許可される操作を以下のキーワードで指定します。この引数は省略可能です。

処理内容
Read読み込み専用
Write書き込み専用
Read Write読み書き

ロック」は、開かれたファイルに対する他のプロセスからの操作の制限を以下のキーワードで指定します。この引数は省略可能です。

 ロック
Shared他プロセスからの読み書き可
Lock Read他プロセスからの読み込み不可
Lock Write他プロセスからの書き込み不可
Lock Read Write他プロセスからの読み書き不可

ファイル番号」は1~511の範囲の数値で指定します。指定するときには「#」を付けて指定します。

[レコード長 ]は、32,767バイト以下の数値を指定します。ランダムアクセスファイルの場合は、レコード長を表します。シーケンシャルファイルの場合は、バッファの容量を表します。この引数は省略可能です。

すべての引数を書いてみるとこのようになります。

テキストファイルを閉じる

テキストファイルをOpenステートメントで開いた場合、操作完了後閉じる必要があります。
テキストファイルを閉じるには「Closeステートメント」を使用します。
Closeステートメントの書式は以下の通りです。

ファイル番号は開いた時のファイル番号を指定して閉じてください。

VBAでテキストファイルを読み込む/書き込む

Openステートメントで開いたテキストファイルの内容を読み書きしてみましょう!

テキストファイルを読み込む

テキストファイルを読み込むには「Line Input ステートメント」を使用します。

Line Input ステートメントの書式は以下の通りです。

Line Input を使うと1行目から読み込みを開始し変数に格納します。格納後、読み込み位置が2行目に移動します。

これを繰り返すことでテキストファイルを読み込むことができます。

最後まで読み込まれたかどうかを取得するには「EOF関数」を使用します。

EOF関数の書式は以下の通りです。

EOF関数はファイル番号で指定したファイルの「読み込み開始位置」がテキストファイルを読み込むことができれば「Ture」が返されます。

この特定を利用して「Do~Loop」を使用してファイルの最終まで読み込ませるという処理を行うのが一般的です。

テキストファイルに書き込む

テキストファイルに書き込みをするときには「Printステートメント」を使用します。

Printステートメントの書式は以下の通りです。

引数のファイル番号はOpenステートメントで開いたファイル番号を指定します。

テキストファイルに書き込みをする場合にはOpenステートメントで「Outputモード」か「Appendモード」で開く必要があります。

Outputモードで書き込むと、保存されていたデータを消して書き込みをします。

Appendモードで書き込むと、保存されているデータを消さずにデータの一番最後に書き込みを行います。

最後に

いかがでしたでしょうか?

今回は一般的に使われているテキストファイルの操作方法をご紹介しました。

他にも「Getステートメント」というものを使って一括に読み込む方法などもありますが、そこまで紹介してしまうと長くなりすぎてしまいますので、別の機会にご紹介していきたいと思います(^^♪

フォロー・チャンネル登録お願いします

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver