テキストファイル:データを書き込む(Print # ステートメント)
Print # ステートメント
Open ステートメント をシーケンシャル出力モード(Output)または、追加モード(Append)で開いたファイルにデータを書き込みます。Write # ステートメントとは違い、データに、区切り文字やダブルクォーテーション(”)は挿入されません。1行単位で、データを書き込みます。
Print #filenumber, [ outputlist ]
引数・戻り値
引数 outputlist の最後の文字がファイルに書き込まれた後に、改行文字のキャリッジリターンとラインフィード( Chr(13) + Chr(10) )が挿入されます。この時、末尾にセミコロン(;)を付加すると改行コードは書き込まれません。
引数 outputlist を省略するとファイルには空白行が書き込まれます。このとき、直前のカンマ(,)は省略できません。
Print # ステートメントで書き込まれたデータは、通常、Line Input # ステートメントまたは Input 関数を使用してファイルから読み取られます。
Spc 関数
Print # ステートメント と共に使用し、引数 n に指定した分のスペースを出力します。
Spc ( n )
引数・戻り値
- n ・・・ スペースの数を指定します。
- n ・・・ スペースの数を指定します。
Tab 関数
Print # ステートメント と共に使用し、引数 n に指定した位置に移動します。
Tab ( n )
引数・戻り値
- n ・・・ 出力位置を指定します(省略可)。
- n ・・・ 出力位置を指定します(省略可)。
Print # ステートメント 使用例
サンプル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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
Sub Sample_Print_InputMode() '1行ごとにデータを書き込む(Output モード・Print # ステートメント) 'ファイルが存在しない場合は新規作成、ファイルが既に存在する場合は、内容を上書き '「Sheet2」のデータを元に、ファイルに、HTMLを書き込みます。 Dim w As Worksheet Dim myRng As Range Dim FileName As String Dim FNum As Integer Dim i As Long Dim j As Long Set w = Worksheets("Sheet2") Set myRng = w.Range("A1").CurrentRegion FileName = "C:\Documents\mydata\file02.html" FNum = FreeFile 'ファイル番号取得 'ファイルを開く(Output モード) Open FileName For Output As #FNum Print #FNum, "<!DOCTYPE html>" Print #FNum, "<html lang=""ja"">" Print #FNum, Spc(2); "<head>" Print #FNum, Spc(4); "<title>成績表</title>" Print #FNum, Spc(2); "</head>" Print #FNum, Spc(2); "<body>" Print #FNum, Spc(4); "<h1>期末テスト結果</h1>" Print #FNum, Spc(4); "<table border="; 1; " cellspacing="; 0; " cellpadding="; 2; ">" For i = 1 To myRng.Rows.Count Print #FNum, Spc(6); "<tr>"; For j = 1 To myRng.Columns.Count If i = 1 Then Print #FNum, "<th>" & myRng(i, j) & "</th>"; Else Print #FNum, "<td>" & myRng(i, j) & "</td>"; End If Next j Print #FNum, "</tr>" Next i Print #FNum, Spc(4); "</table>" Print #FNum, Spc(2); "</body>" Print #FNum, "</html>" Close #FNum End Sub |
サンプルVBAソース 1 実行結果
「Sheet 2」の内容
サンプルVBAソース 1 を実行して作成された「file02.html」の内容
サンプル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 33 34 35 36 37 38 39 40 41 42 |
Sub Sample_Print_InputMode2() '1行ごとにデータを書き込む(Output モード・Print # ステートメント) Dim FileName As String Dim FNum As Integer Dim myDate1 As Date Dim myDate2 As Date Dim myBool As Boolean Dim myNull Dim myError FileName = "C:\Documents\mydata\test.txt" FNum = FreeFile myDate1 = #9/25/2015# myDate2 = Date myBool = True myNull = Null myError = CVErr(32767) 'ファイルをシーケンシャル出力モード(Output)で開く Open FileName For Output As FNum 'ファイルへ書き込み Print #FNum, "ファイルへ書き込みをします。" '文字列書き込み Print #FNum, '空白行の挿入 Print #FNum, Spc(10); "左に半角スペース10個分" 'スペース10挿入(Spc 関数) Print #FNum, "12345678901234567890" '数値 Print #FNum, "abcdefghijklmno" 'アルファベット Print #FNum, "abcde"; Tab(11); "klmno" '途中にタブを挿入(Tab 関数) Print #FNum, "日付:"; myDate1; Tab; myDate2 '日付 タブ 日付 Print #FNum, "myBool:"; myBool 'ブール型の値の挿入 Print #FNum, "myNull:"; myNull 'Null値の挿入 Print #FNum, "myError:"; myError 'エラー値の挿入 'ファイルを閉じる Close #FNum End Sub |
サンプルVBAソース 2 実行結果
サンプルVBAソース 2 を実行して作成された「test.txt」の内容
サンプルVBAソース 3
サンプルVBAソース 2 を実行して作成された「test.txt」にデータを追加
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 |
Sub Sample_Print_AppendMode() '1行ごとにデータを書き込む(Append モード・Print # ステートメント) Dim FileName As String Dim FNum As Integer Dim myDate1 As Date Dim myDate2 As Date FileName = "C:\Documents\mydata\test.txt" FNum = FreeFile myDate1 = Now myDate2 = Time '追加モード(Append)で開く Open FileName For Append As FNum 'ファイルへ追加で書き込み Print #FNum, '空白行の挿入 Print #FNum, "ファイルへデータ追加します。" '文字列書き込み Print #FNum, "日付時刻:"; myDate1 '日付時刻 Print #FNum, "時刻:"; myDate2 '時刻 'ファイルを閉じる Close #FNum End Sub |
サンプルVBAソース 3 実行結果
関連記事
-
「ファイルを開く」ダイアログボックス(FindFile メソッド)
FindFile メソッド 「ファイルを開く」ダイアログボックスを表示します。G …
-
組み込みダイアログボックスの引数一覧
組み込みダイアログボックスの引数一覧 Excel の組み込みダイアログボックスを …
-
ファイルのタイムスタンプを取得(FileDateTime 関数)
ファイルのタイムスタンプを取得 ファイルのタイムスタンプを取得するには、File …
-
「名前を付けて保存」ダイアログボックスを表示(GetSaveAsFilename メソッド)
GetSaveAsFilename メソッド 「名前を付けて保存」ダイアログボッ …
-
ディレクトリまたはフォルダの削除(RmDir ステートメント)
ディレクトリまたはフォルダの削除 ディレクトリまたはフォルダを削除するには、Rm …
-
FileDialog オブジェクトを取得する(FileDialog プロパティ)
FileDialog プロパティ FileDialog オブジェクト を取得しま …
-
テキストファイル:データを読み込む(Get ステートメント)
Get ステートメント Open ステートメント をランダムアクセスモード(Ra …
-
テキストファイル:出力する 1 行の幅を設定(Width # ステートメント)
Width # ステートメント Open ステートメント をシーケンシャル出力モ …
-
開いているファイルの読み取り位置または書き込み位置を設定(Seek ステートメント)
Seek ステートメント Open ステートメント で開いているファイルで、次に …
-
特殊フォルダを取得(wsh.SpecialFolders)
CreateObject 関数:特殊フォルダを取得(WSH.SpecialFol …