行と列がわからないので、こちらで添付する画像のセルアドレスでのコードです。元データファイルに入れるマクロです。
csvファイルは元ファイルと同じフォルダに、年月の名前をつけて作成しました。csvファイルなので文字化け対応させています。
>日曜日:19、それ以外は8で
と書いてありますが、日曜以外の「休」は19にしなくていいのですか?
勝手に19にするとしてのコードにしてありますので、必要なければその部分は消して下さい。
csvファイル作成なので文字化け対応させています。
Sub test()
Dim adoSt As Object
Dim wb As Workbook
Dim sh As Worksheet
Dim fname As String
Dim wline As String
Dim cmax As Long
Dim r As Long, c As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sh = ActiveSheet
fname = ThisWorkbook.path & "\" & Format(sh.Range("C3").Value, "yyyymm") & ".csv"
Set adoSt = CreateObject("ADODB.Stream")
With adoSt
.Charset = "UTF-8"
.LineSeparator = adLF
.Open
cmax = sh.Cells(3, Columns.Count).End(xlToLeft).Column
For r = 4 To sh.Cells(Rows.Count, 1).End(xlUp).Row
wline = ""
For c = 3 To cmax
wline = 11 & "," & sh.Cells(r, 1).Value & "," & sh.Cells(3, c).Value
If Weekday(sh.Cells(3, c).Value) = 1 Or sh.Cells(r, c).Value = "休" Then
wline = wline & "," & 19
Else
wline = wline & "," & 8
End If
.WriteText wline, adWriteLine
Next c
Next r
.SaveToFile fname, adSaveCreateOverWrite
.Close
End With
Set adoSt = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "csvファイル作成完了"
End Sub