テキストファイルの操作(2)
ワークシートの内容をテキストに書き込むには,WriteステートメントとPrintステートメントの2つの方法がある.
- Write ステートメント
- 1行の内容を1行に書き込む
1セルに入力されているデータ毎にダブルクォーテーションで囲まれ,データ間にはカンマ(またはセミコロン)が挿入される.
行末には自動的に改行が挿入される. - Printステートメント
- セルの内容を行単位で書き込む.
データ毎のダブルクォーテーションや区切り文字は挿入されない.
行末には自動的に改行が挿入される.
どちらの場合も,書き込む時は,以下の手順で処理する.
Writeステートメントでテキストファイルに書き込む
Writeステートメントは一覧表の出力などに向いている.
■ワークシートの内容をテキストファイルに書き込む
Sub Writeで出力() Dim fileNo As Integer Dim i As Long Dim lastRow As Long Worksheets("シート名").Activate lastRow = Range("A1").CurrentRegion.Rows.Count fileNo = FreeFile Open "絶対パスのファイル名" For Append As #fileNo For i = 1 To lastRow Print #fileNo, Cells(i, 1), Cells(i, 2), Cells(i, 3)・・・・ Next i Close #fileNo End Sub『シート名』は文章が書いてあるシート名.
『絶対パスのファイル名』は,テキストファイルを出力するディレクトリのフルパスと出力するテキストファイルの名称(フルパス名+ファイル名)を指定.
Openステートメントで 'Append' を指定しているので,複数回実行するとテキストファイルに追記される.
PrintステートメントのCellsは,出力するセルを全て記述する(行単位).
Printステートメントでテキストファイルに書き込む
Printステートメントは文章を出力するのに向いている.
■ワークシートの内容をテキストファイルに書き込む
※ワークシートのA列に文章が書いている事を前提としたサンプルSub Printで出力() Dim fileNo As Integer Dim i As Long Dim lastRow As Long Worksheets("シート名").Activate lastRow = Range("A65536").End(xlUp).Row fileNo = FreeFile Open "絶対パスのファイル名" For Append As #fileNo For i = 1 To lastRow Print #fileNo, Cells(i, 1) Next i Close #fileNo End Sub『シート名』は文章が書いてあるシート名.
『絶対パスのファイル名』は,テキストファイルを出力するディレクトリのフルパスと出力するテキストファイルの名称(フルパス名+ファイル名)を指定.
Openステートメントで 'Append' を指定しているので,複数回実行するとテキストファイルに追記される.