''' <summary>
''' テキストを出力する。
''' </summary>
''' <param name="strText">出力テキスト</param>
''' <param name="useBuffer">バッファの利用有無(※省略時はTrue)</param>
''' <remarks></remarks>
Public Sub WriteText( _
ByVal strText As String, _
Optional ByVal useBuffer As Boolean = True)
colTraget.Add strText
If useBuffer = True Then
'バッファ有効の場合は、
'一旦、バッファに溜めておき、
'特定サイズを越えてからファイル出力する。
If colTraget.Count > BUF_SIZE Then
Me.Flush
End If
Else
'バッファ無効の場合は、ファイルに出力
Me.Flush
End If
End Sub
''' <summary>
''' バッファーの内容をテキストに出力する。
''' </summary>
''' <remarks></remarks>
Public Sub Flush()
'ファイルが既に存在する場合は、全テキストを読込む。
'※追記書込みができないので、
' 既存テキストをメモリ上に取込んでから上書きする。
If objFs.FileExists(targetFilePath) Then
.LoadFromFile targetFilePath
.Position = .Size
End If
For i = 1 To colTraget.Count
.WriteText colTraget(i)
Next
''' <summary>
''' 出力ディレクトリを取得する。
''' </summary>
''' <returns>出力ディレクトリ(デフォルト:ThisWorkbook.path)</returns>
''' <remarks></remarks>
Private Function GetTargetDirectory() As String
If Me.TargetDirectory = "" Then
GetTargetDirectory = ThisWorkbook.path
Exit Function
End If
GetTargetDirectory = Me.TargetDirectory
End Function
''' <summary>
''' 出力ファイルパスを設定する。
''' </summary>
''' <param name="targetFilePath">出力ファイルパス</param>
''' <remarks></remarks>
Public Sub SetFilePath(ByVal targetFilePath As String)
With objFs
Me.TargetDirectory = _
.GetParentFolderName(targetFilePath)
Me.TargetFileName = _
objFs.GetFileName(targetFilePath)
End With
End Sub
''' <summary>
''' バッファーをクリアする。
''' </summary>
''' <remarks></remarks>
Public Sub ClearBuffer()
Dim i As Long
For i = colTraget.Count To 1 Step -1
colTraget.Remove i
Next