Microsoft Access 掲示板

カラムにデータがあったら、別のカラムにデータを入力する方法 / 24

26 コメント
views
4 フォロー
24
タークン 2023/12/29 (金) 19:43:33 7a0a1@2705a

社保のCSVファイルは、列数の異なるデータをひとつのファイルにまとめてあるため、
列数が少ない行には、不要なカンマが入ってしまう事が原因でした。
すべて、配列で読み込むとEXCELは止まってしまうため、
大物の個人データの範囲だけCSVで出力した後に、
データ量が少ない所属データを、先頭に書き込んで上書きすればエラーの出ないファイルができます。
電子申請したい方がいたら、ファイル名だけ変更すればそのまま使えるはずなので、コードをアップしておきます。

 Sub kansei()
 Dim fn As String, txt As String
 Dim strName() As String
 ReDim strName(1)

  '配列に値を入れる
  dat = ""
  With Sheets("sheet1")
   For i = 1 To 6
    dat = dat & .Cells(1, i) & ","
   Next
   dat = Left(dat, Len(dat) - 1) '最後のカンマを取り除く
   strName(0) = dat
   dat = ""
   For i = 1 To 11
    dat = dat & .Cells(4, i) & ","
   Next
   dat = Left(dat, Len(dat) - 1) '最終のカンマを取り除く
   strName(1) = dat
  End With

 fn = "C:\Users\tasuk\Desktop\A社保申告\SHFD0006temp - コピー.CSV"
 txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(fn).ReadAll
  'Debug.Print strName(0) & vbCrLf & "[kanri]" & vbCrLf & ",001" & vbCrLf & strName(1)
  txt = strName(0) & vbCrLf & "[kanri]" & vbCrLf & ",001" & vbCrLf & strName(1) & vbCrLf & txt
  Open fn For Output As #1
     Print #1, txt
 Close #1

 End Sub

通報 ...