Use array constant for CSV header
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
' CSV Header Constants
|
||||
Const CSV_HEADER As String = "利用区間コード,券種,コード,名称,1箇月運賃/販売額,定期額/券1(額)/利用額,定期支給期間/券1(枚)/特別料金,特別料金/券2(額),券2(枚),端数(額),特別料金"
|
||||
Const CSV_HEADER_ARRAY As Variant = Array("利用区間コード", "券種", "コード", "名称", "1箇月運賃/販売額", "定期額/券1(額)/利用額", "定期支給期間/券1(枚)/特別料金", "特別料金/券2(額)", "券2(枚)", "端数(額)", "特別料金")
|
||||
|
||||
Private Sub Worksheet_Change(ByVal Target As Range)
|
||||
' === Generate F dropdown based on G column (matching left of colon) ===
|
||||
@@ -176,8 +177,20 @@ Sub ImportMasterDetailData()
|
||||
If UBound(lines) >= 0 And Trim(lines(0)) <> "" Then
|
||||
Dim csvHeader As String
|
||||
csvHeader = Trim(lines(0))
|
||||
If csvHeader <> CSV_HEADER Then
|
||||
MsgBox "CSV header mismatch." & vbCrLf & "Expected: " & CSV_HEADER & vbCrLf & "Got: " & csvHeader, vbExclamation
|
||||
' Validate header by comparing each field
|
||||
Dim headerFields As Variant
|
||||
headerFields = Split(csvHeader, ",")
|
||||
Dim headerMismatch As Boolean
|
||||
headerMismatch = False
|
||||
Dim k As Long
|
||||
For k = 0 To UBound(CSV_HEADER_ARRAY)
|
||||
If k > UBound(headerFields) Or Trim(headerFields(k)) <> CSV_HEADER_ARRAY(k) Then
|
||||
headerMismatch = True
|
||||
Exit For
|
||||
End If
|
||||
Next k
|
||||
If headerMismatch Or UBound(headerFields) <> UBound(CSV_HEADER_ARRAY) Then
|
||||
MsgBox "CSV header mismatch.", vbExclamation
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
@@ -383,7 +396,7 @@ Sub ExportMasterDetailData()
|
||||
|
||||
' Use constant for header
|
||||
Dim headerList As Variant
|
||||
headerList = Split(CSV_HEADER, ",")
|
||||
headerList = CSV_HEADER_ARRAY
|
||||
|
||||
' Build CSV
|
||||
Dim csvContent As String
|
||||
|
||||
Reference in New Issue
Block a user