社会保険を支払った時に入出金明細に特定の文字列が表記されます。銀行によって異なるので確認をしてください。この例では、KOUSEIHOKEN という表記があった場合を想定します。
一致したら行を挿入して、
VBAで 最終行までループして J列 に KOUSEIHOKEN と言う文字列に一致したら1行を挿入 会社者負担分 と言う文字に変更してしてください。そして 挿入行のA列には 挿入 という文字を代入して J列に 従業員負担分 という文字にしてください。
さらに追加で 最終列がLastColumn と言う変数で 元の行のLastColumn-9列に 未払金‐社会保険 挿入行に 預り金-社会保険 と入力してください。そして 元の行のLastColumn-1列に 〇月度社会保険料 会社負担分 給与分 挿入行に 〇月度社会保険料 従業員負担分 給与分 と入力するようにVBAを修正お願い致します
元の行の U列をコピーして 挿入行のU列に貼り付けるようにする処理を追加してください。
Sub InsertRowChangeValue()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim lastColumn As Long
Dim i As Long
' ワークシートを設定
Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を適切なものに変更してください
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, "J").End(xlUp).Row
' 最終列を取得
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' J列をループ
For i = lastRow To 1 Step -1
' "KOUSEIHOUKEN"が一部一致する場合
If InStr(ws.Cells(i, "J").Value, "KOUSEIHOUKEN") > 0 Then
' 1行挿入
ws.Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
' A列に"挿入"と入力
ws.Cells(i + 1, "A").Value = "挿入"
' J列に"従業員負担分"と入力
ws.Cells(i + 1, "J").Value = "従業員負担分"
' 元の行のJ列の値を"会社者負担分"に変更
ws.Cells(i, "J").Value = "会社者負担分"
' 元の行のLastColumn-5列に"未払金‐社会保険"を入力
ws.Cells(i, lastColumn - 5).Value = "未払金‐社会保険"
' 挿入行のLastColumn-5列に"預り金-社会保険"を入力
ws.Cells(i + 1, lastColumn - 5).Value = "預り金-社会保険"
' 元の行のLastColumn-1列に"〇月度社会保険料 会社負担分 給与分"を入力
ws.Cells(i, lastColumn - 1).Value = "〇月度社会保険料 会社負担分 給与分"
' 挿入行のLastColumn-1列に"〇月度社会保険料 従業員負担分 給与分"を入力
ws.Cells(i + 1, lastColumn - 1).Value = "〇月度社会保険料 従業員負担分 給与分"
' 元の行のU列をコピー
ws.Cells(i, "U").Copy
' 挿入行のU列に貼り付け
ws.Cells(i + 1, "U").PasteSpecial Paste:=xlPasteValues
End If
Next i
Application.CutCopyMode = False
End Sub