ExcelマクロCSV出力 行に連番をつける
Private Sub CommandButton1_Click()
' 実行したPCのDドライブに保存
Open "D:\data1.csv" For Output Access Write As #1
' データシートのB17からB列にデータが入っている行のみを出力
' もしB列にデータがあり、値が「ああ」なら区分を「1」に「いい」なら「2」に置き換える
With Sheets("データ")
Print #1, "区分" & "," & "ID" & "," & "名前"
For intRow = 17 To .Range("B" & Rows.count).End(xlUp).Row
If Trim(.Cells(intRow, 2).Value) <> "" And .Cells(intRow, 2).Value = "ああ" Then
Print #1, Replace(.Cells(intRow, 2), "ああ", "1") & "," & Trim(.Cells(intRow, 3)) & "," & Trim(.Cells(intRow, 4))
ElseIf Trim(.Cells(intRow, 2).Value) <> "" And .Cells(intRow, 2).Value = "いい" Then
Print #1, Replace(.Cells(intRow, 2), "いい", "2") & "," & Trim(.Cells(intRow, 3)) & "," & Trim(.Cells(intRow, 4))
End If
Next intRow
End With
Close #1
End Sub
-------------------------------------------------------------
上記のロジックで「データ」シートのB17からD列の最終行までをCSV出力しています。
その際、(1)B列に値が入った行のみを出力する(A列が空白なら無視し次の行へ)
(2)B列の値が「ああ」ならCSVファイルで「1」に、「いい」なら「2」に置き換え
というロジックを加えています。
このコードに、CSV出力時の最終項目(名前の後ろ)に連番を項目として追加する
ロジックを追加したいのですが、方法がわかる方いらっしゃいますか?
CSVファイルは下記のようなイメージです。
区分,ID,名前,連番
1,9999,太郎,1
2,8888,花子,2
1,7777,一郎,3
1,6666,次郎,4
どなたか教えてくださいm(__)m!!
お礼
momokun2007さんへ どうもありがとうございます!!!! 解決いたしました!! また、的確なご説明まで添えていただいて本当にありがとうございます。常に上書いて出力していたので最終行でしか出力されなかったのですね! また何かありましたらどうぞよろしくお願いいたしますm(_ _)m