pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA 新しい行を指定行の下に追加後、指定行のデータをコピーする。

'
' 新しい行を指定行の下に追加後、指定行のデータをコピーする。
'
'
' 引数:pwksTarget 挿入するシート
'       pintLineNo コピーする行番号
' 戻り値:追加した行番号
' https://pgbigoroku.hatenablog.com/entry/2022/12/03/013417
' バージョン 2022/12/3
Private Function nlngCopywithData(ByRef pwksTarget As Worksheet, ByVal plngLineNo As Long) As Long
    '前処理、現在のアクティブブックを保存する。
    Dim wksActive As Worksheet
    Set wksActive = ActiveSheet
    
    '本処理ここから
    
    pwksTarget.Parent.Activate
    pwksTarget.Select
    pwksTarget.Rows(CStr(plngLineNo) & ":" & CStr(plngLineNo)).Select
    Selection.Copy
    pwksTarget.Rows(CStr(plngLineNo + 1) & ":" & CStr(plngLineNo + 1)).Select
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
    nlngCopywithData = plngLineNo + 1
    
    '本処理ここまで

    '後処理 処理前のアクディブブックに戻す
    wksActive.Parent.Activate
    wksActive.Select

End Function