diff --git a/vba_code_kukan_detail_master.txt b/vba_code_kukan_detail_master.txt index b0d2657..a275bbd 100644 --- a/vba_code_kukan_detail_master.txt +++ b/vba_code_kukan_detail_master.txt @@ -1,3 +1,6 @@ +' CSV Header Constants +Const CSV_HEADER As String = "利用区間コード,券種,コード,名称,1箇月運賃/販売額,定期額/券1(額)/利用額,定期支給期間/券1(枚)/特別料金,特別料金/券2(額),券2(枚),端数(額),特別料金" + Private Sub Worksheet_Change(ByVal Target As Range) ' === Generate F dropdown based on G column (matching left of colon) === If Target.Column = 7 And Target.Row >= 7 Then @@ -169,6 +172,16 @@ Sub ImportMasterDetailData() lines = Split(textContent, vbCrLf) + ' === Validate CSV header === + 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 + Exit Sub + End If + End If + ' === Clear all data rows before import === lastRow = wsTarget.Cells(wsTarget.Rows.Count, "C").End(xlUp).Row If lastRow >= 7 Then @@ -368,9 +381,9 @@ Sub ExportMasterDetailData() savePath = savePath & ".csv" End If - ' Header:,1箇月運賃/販売額,定期額/券1(額)/利用額,定期支給期間/券1(枚)/特別料金,特別料金/券2(額),券2(枚),端数(額),特別料金 + ' Use constant for header Dim headerList As Variant - headerList = Array("利用区間コード", "券種", "コード", "名称", "1箇月運賃/販売額", "定期額/券1(額)/利用額", "定期支給期間/券1(枚)/特別料金", "特別料金/券2(額)", "券2(枚)", "端数(額)", "特別料金") + headerList = Split(CSV_HEADER, ",") ' Build CSV Dim csvContent As String