Write # ステートメント
Open ステートメント をシーケンシャル出力モード(Output)または追加モード(Append)で開いたファイルにデータを書き込みます。書き込まれるデータ間には、カンマ(,)が挿入されます。
【構文】
Write #filenumber, [ outputlist, … ]
引数・戻り値
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- outputlist ・・・ ファイルに書き込む値(数式や文字列式)を指定します。複数指定する場合は、カンマ(,)で区切って指定します。引数 outputlist を省略するとファイルには空白行が書き込まれます。このとき、直前のカンマ(,)は省略できません。
- 文字列データの場合、ダブルクォーテーション(”)で囲まれて書き込まれます。
- ブール型(Boolean)のデータの場合、#TRUE# または #FALSE# が書き込まれます。
- 日付型(Date)のデータの場合、汎用日付形式(#yyyy-mm-dd hh:mm:ss#、#yyyy-mm-dd#、#hh:mm:ss#)を使用して書き込まれます。
- Null データの場合、#NULL# が書き込まれます。
- Error データの場合、#ERROR errorcode# が書き込まれます。
- Empty の場合は、何も書き込まれません。
- 引数 outputlist に、複数指定した場合、データ間にはカンマ(,)が挿入されます。
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- outputlist ・・・ ファイルに書き込む値(数式や文字列式)を指定します。複数指定する場合は、カンマ(,)で区切って指定します。引数 outputlist を省略するとファイルには空白行が書き込まれます。このとき、直前のカンマ(,)は省略できません。
- 文字列データの場合、ダブルクォーテーション(”)で囲まれて書き込まれます。
- ブール型(Boolean)のデータの場合、#TRUE# または #FALSE# が書き込まれます。
- 日付型(Date)のデータの場合、汎用日付形式(#yyyy-mm-dd hh:mm:ss#、#yyyy-mm-dd#、#hh:mm:ss#)を使用して書き込まれます。
- Null データの場合、#NULL# が書き込まれます。
- Error データの場合、#ERROR errorcode# が書き込まれます。
- Empty の場合は、何も書き込まれません。
- 引数 outputlist に、複数指定した場合、データ間にはカンマ(,)が挿入されます。
Write # ステートメントでは、引数 outputlist の最後の文字がファイルに書き込まれた後に、改行文字のキャリッジリターンとラインフィード( Chr(13) + Chr(10) )が挿入されます。
Write # ステートメントで書き込まれるデータは、通常、Input # ステートメントでファイルから読み取られます。
Write # ステートメント 使用例
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Sub Sample_Write_Output() 'カンマ区切りのデータを書き込む(Output モード・Write # ステートメント) '「Sheet1」の表をテキストファイルに書き込む 'ファイルが存在しない場合は新規作成、ファイルが既に存在する場合は、内容を上書き Dim w As Worksheet Dim myRng As Range Dim FileName As String Dim FNum As Integer Dim i As Integer Set w = Worksheets("Sheet1") Set myRng = w.Range("A1").CurrentRegion FileName = "C:\Documents\mydata\file01.txt" FNum = FreeFile 'ファイル番号取得 'ファイルを開く(Output モード) Open FileName For Output As #FNum For i = 2 To myRng.Rows.Count 'カンマ区切りでデータを書き込む Write #FNum, myRng(i, 1).Value, myRng(i, 2).Value, myRng(i, 3).Value Next i 'ファイルを閉じる Close #FNum End Sub |
実行結果
「Sheet1」の表
サンプルVBAソース 実行後に作成されたファイルの内容
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub Sample_Write_Append() 'カンマ区切りのデータを追記する(Append モード・Write # ステートメント) Dim myData(2) myData(0) = Array(6, "花田みき", #2/3/2012#) myData(1) = Array(7, "香川さくら", #2/5/2012#) myData(2) = Array(8, "山川弘美", #3/5/2012#) Dim FileName As String Dim FNum As Integer Dim i As Integer FileName = "C:\Documents\mydata\file01.txt" FNum = FreeFile 'ファイル番号取得 'ファイルを開く(Append モード) Open FileName For Append As #FNum For i = 0 To UBound(myData) 'カンマ区切りでデータを書き込む Write #FNum, myData(i)(0), myData(i)(1), myData(i)(2) Next i 'ファイルを閉じる Close #FNum End Sub |
実行結果
サンプルVBAソース 2 実行後に作成されたファイルの内容