パソコン悪戦苦闘記録

VBAでテキストファイルの入出力

 ExcelやWordのVBAで、テキストファイル外部データとして扱うテーマの記事を、3本ほど書きました。
 ADODB.Streamオブジェクトを使うと、文字コードUTF-8のテキストファイルも処理できます。

 ADODB.Streamオブジェクト関係記事は、
  こちら(1本目)
  こちらも(2本目)
  さらに、こちらも(3本目)


 上記の記事中には、サンプルコードを掲載しているので、いざコードを書こうとするときには、これを開いて参考にする予定です。
 とても、コードの細部までは覚えておくことはできませんから。





 細かいことは、その都度、上記サンプルコードを参考にします。それでも、大枠は理解して押さえておくべきでしょう。
 大枠とは、
 【1】テキストインプットには、ReadTextを使用
 【2】テキストアウトプットには、WriteTextを使用
ということです。

 
【1】インプット
 テキストファイルのインプットには、ADODB.StreamのReadTextメソッドを使います。
 なお、ReadTextメソッド実行前には、LoadFromFile メソッドを実行して、テキストファイルの内容をStreamに読み込んでおきます。

 【解説1】LoadFromFile メソッド
 既存のテキストファイルの内容を Stream に読み込みます。

 構文: myStream.LoadFromFile FileName
 パラメーター:FileName
 Stream に読み込むファイルの名前を含む文字列型 (String) の値を指定します。指定したファイルが存在しない場合は、実行時エラーが発生します。

 【解説2】ReadTextメソッド
 テキストファイルの内容を取得するメソッドです。
 引数を指定しない場合には、末尾まで一気に読み込みます。
 引数に「-2(定数adReadLine)」を指定すると、1行分だけ読み込みます。
 取得した内容をいったん変数に格納し、その変数の値をExcelのセルやWord本文に展開するという利用になります。


【2】アウトプット
 テキストファイルのアウトプットには、ADODB.StreamのWriteTextメソッドを使います。
 その上で、SaveToFileメソッドでテキストファイルに保存します。

 【解説3】WriteTextメソッド
  構文「myStream.WriteText テキスト文字列 , [改行指定]」
 で、ストリームオブジェクトにテキスト文字列を書き込みます。
  [改行指定]に、 1(定数adWriteLine) を指定すると、文字列を書き込んだ後ろに改行文字が挿入されます。
 改行指定を省略するか、”0″を入力すると改行が入力されません。

 【解説4】SaveToFileメソッド
 何度かWriteTextメソッドで文字を書き込んでいき、書き込みが終わったら最後に、
  構文「myAdost.SaveToFile ファイル名 , [上書き指定]」
で、ストリームオブジェクトの内容をファイルに保存します。

 ファイル名にはファイルパス文字列を、
 [上書き指定]のパラメータには、
 ファイルを上書きしない場合 ”1″を、
 上書きする場合 ”2″を指定しましょう。
 省略時のデフォルト値は「1」です。


 ちょっと専門的な内容の記事になりましたが、VBAコード記述の参考にしていただければ。


 

それでは、また次の記事で
goosyun
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事