スプレッドシートからコンマ区切りファイルにデータをエクスポートするコードがいくつかあります。コードの任意の場所にブレークポイントを設定すると、期待どおりにデータがファイルにエクスポートされます。ブレークポイントがない場合、ファイルはデータなしで作成されます。これはタイミングの問題だと思い、コード内で待機サイクルを試しましたが、問題は解決しませんでした。コードは次のとおりです。
Private Sub WriteDataToFile()
Dim i As Long
Dim iLastRow As Integer
Dim strFile As String
Dim FSO As FileSystemObject
Dim FSOFile As TextStream
Dim strData As String
Dim s As String
strFile = "C:\Temp\DSGELIG.txt"
' Delete the file if it already exists
DeleteFile (strFile)
' Determine the last row
iLastRow = 50
For i = 2 To 65000
strData = Range("B" + CStr(i))
If Len(strData) < 1 Then
iLastRow = i - 1
Exit For
End If
Next i
' Create the file system object
Set FSO = New FileSystemObject
Set FSOFile = FSO.OpenTextFile(strFile, ForWriting, True)
For i = 2 To iLastRow
strData = ""
With Worksheets(1)
'Debug.Print Range("B" + CStr(i))
strData = """"
' Patient Name
strData = strData + Range("B" + CStr(i))
strData = strData + """" + "," + """"
' SSN / Policy #
strData = strData + Range("C" + CStr(i))
strData = strData + """" + "," + """"
' Birthdate
strData = strData + CStr(Range("D" + CStr(i)))
strData = strData + """" + "," + """"
' Admit Date
strData = strData + CStr(Range("E" + CStr(i)))
strData = strData + """" + "," + """"
' Admit Date - 2
strData = strData + CStr(Range("F" + CStr(i)))
strData = strData + """" + "," + """"
' Account Number
strData = strData + CStr(Range("G" + CStr(i)))
strData = strData + """" + "," + """"
' Insurance Code
strData = strData + Range("H" + CStr(i))
strData = strData + """" + "," + """"
' Financial Class
strData = strData + Range("I" + CStr(i))
strData = strData + """" + "," + """"
' Location
strData = strData + Range("J" + CStr(i))
strData = strData + """"
' Write the record to the file
FSOFile.WriteLine (strData)
End With
Next i
FSOFile.Close
End Sub
事前に感謝します-VBAを行ってからしばらく経ちました。