テキストファイル:データを書き込む(Write # ステートメント)
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 実行後に作成されたファイルの内容
関連記事
-
開いているファイルの現在の読み取り位置または書き込み位置を取得(Seek 関数)
Seek 関数 Open ステートメント で開いたファイル内の現在の読み取り位置 …
-
テキストファイル:データを読み込む(Get ステートメント)
Get ステートメント Open ステートメント をランダムアクセスモード(Ra …
-
テキストファイル:データを書き込む(Put ステートメント)
Put ステートメント Open ステートメント をランダムアクセスモード(Ra …
-
FileDialog オブジェクトを取得する(FileDialog プロパティ)
FileDialog プロパティ FileDialog オブジェクト を取得しま …
-
「ファイルを開く」ダイアログボックス(FindFile メソッド)
FindFile メソッド 「ファイルを開く」ダイアログボックスを表示します。G …
-
テキストファイル:データを書き込む(Print # ステートメント)
Print # ステートメント Open ステートメント をシーケンシャル出力モ …
-
「名前を付けて保存」ダイアログボックスを表示(GetSaveAsFilename メソッド)
GetSaveAsFilename メソッド 「名前を付けて保存」ダイアログボッ …
-
ファイル属性の取得・設定(GetAttr 関数・SetAttr ステートメント)
ファイル属性の取得(GetAttr 関数) ファイルやフォルダ(ディレクトリ)の …
-
ファイルのタイムスタンプを取得(FileDateTime 関数)
ファイルのタイムスタンプを取得 ファイルのタイムスタンプを取得するには、File …
-
ファイルの検索・フォルダ内のファイル一覧を取得(Dir 関数)
Dir 関数 Dir 関数で、ファイルの存在を確認したり、指定したフォルダ内のフ …