modify ReadCSVAs2DArrayStrict

This commit is contained in:
updsv7
2026-04-14 15:21:32 +09:00
parent 9b85a6b861
commit 6ef093aca5
3 changed files with 76 additions and 152 deletions

View File

@@ -13,40 +13,40 @@ Sub Z1_ImportMasterDetailData()
Dim writeRow As Long
Set wsTarget = Me
On Error GoTo ErrorHandler
' Step 1: Select CSV file
filePath = SelectCSVFile()
If filePath = "" Then Exit Sub
' Step 2: Read CSV
lines = ReadCSVFile(filePath, "utf-8")
' Step 2: Read CSV and return 2D array
lines = ReadCSVAs2DArrayStrict(filePath, 7, "utf-8")
' Step 3: Validate column count
If Not ValidateCSVColumnCount(lines, 7) Then Exit Sub
' Step 4: Clear data rows
' Step 3: Clear data rows
Call ClearDataRows(wsTarget, 7, 3)
' Step 5: Import data
' Step 4: Import data
writeRow = 7
For i = 0 To UBound(lines)
If Trim(lines(i)) <> "" Then
dataArray = Split(lines(i), ",")
wsTarget.Cells(writeRow, 3).Value = CleanCSVField(CStr(dataArray(0)))
wsTarget.Cells(writeRow, 4).Value = CleanCSVField(CStr(dataArray(1)))
wsTarget.Cells(writeRow, 5).Value = CleanCSVField(CStr(dataArray(2)))
wsTarget.Cells(writeRow, 6).Value = CleanCSVField(CStr(dataArray(3)))
wsTarget.Cells(writeRow, 7).Value = CleanCSVField(CStr(dataArray(4)))
wsTarget.Cells(writeRow, 8).Value = CleanCSVField(CStr(dataArray(5)))
wsTarget.Cells(writeRow, 9).Value = CleanCSVField(CStr(dataArray(6)))
For i = LBound(lines, 1) To UBound(lines, 1)
If Not isRowEmpty Then
wsTarget.Cells(writeRow, 3).Value = CleanCSVField(CStr(lines(i, 1)))
wsTarget.Cells(writeRow, 4).Value = CleanCSVField(CStr(lines(i, 2)))
wsTarget.Cells(writeRow, 5).Value = CleanCSVField(CStr(lines(i, 3)))
wsTarget.Cells(writeRow, 6).Value = CleanCSVField(CStr(lines(i, 4)))
wsTarget.Cells(writeRow, 7).Value = CleanCSVField(CStr(lines(i, 5)))
wsTarget.Cells(writeRow, 8).Value = CleanCSVField(CStr(lines(i, 6)))
wsTarget.Cells(writeRow, 9).Value = CleanCSVField(CStr(lines(i, 7)))
writeRow = writeRow + 1
End If
Next i
MsgBox writeRow - 7 & " rows imported.", vbInformation
Exit Sub
ErrorHandler:
MsgBox "Import fails:" & vbCrLf & Err.Description, vbCritical
End Sub
Sub Z1_ExportMasterDetailData()