アプリケーションとしてのVBA
スペース区切りテキストの書き出し
◆スペース区切りテキストの書き出し
スペース区切りテキストの書き出しは、CSVファイルの書き出しと殆ど同じです。
違いは、Write文 の代わりに Print文 を使います。
Write文はカンマが自動で入りますが、 Print はスペースの挿入を指定します。
Write文と同様に変数の最後にセミコロン (;)を付けると改行が入らなくなります。
このサンプルでは、ループ制御に For Each を使用して、CSVファイルの書き出しよりも
スマートになってます。
example20 をダウンロードして動作を確認してください。
Sub Spc_Write()
Dim FileType, Prompt As String
Dim FileNamePath As Variant
Dim Max_Column As Integer
Dim Columncnt As Integer
Dim UsedCell As Range
Dim RowsCells As Range
Dim ch1 As Long
FileType = "txt ファイル (*.txt),*.txt"
Prompt = "保存するファイルの名前を付けてください"
FileNamePath = SaveFileNamePath(FileType, Prompt)
If FileNamePath = False Then
End
End If
ch1 = FreeFile
Open FileNamePath For Output As #ch1
Set UsedCell = ActiveSheet.UsedRange
Max_Column = UsedCell.Columns.Count
For Each RowsCells In UsedCell.Rows
For Columncnt = 1 To Max_Column - 1
Print #ch1, RowsCells.Columns(Columncnt).Text; Spc(1);
Next
Print #ch1, RowsCells.Columns(Max_Column).Text
Next
Close #ch1
End Sub
Function SaveFileNamePath(FileType, Prompt) As Variant
SaveFileNamePath = Application.GetSaveAsFilename _
(ActiveSheet.Name, FileType, , Prompt)
End Function