ray88’s diary

お仕事で困ったとき用の自分用の覚書

Excel VBA 指定したブックの指定範囲を任意のブックの指定した位置に貼り付け

Sub CopyRange(ByVal sourceSheet As Worksheet, ByVal sourceRange As String, ByVal destinationSheet As Worksheet, ByVal destinationCell As String)
    Dim source As Range
    Dim destination As Range
    
    ' コピー元の範囲を取得
    Set source = sourceSheet.Range(sourceRange)
    
    ' コピー先の起点となるセルを取得
    Set destination = destinationSheet.Range(destinationCell)
    
    ' 値の貼り付け
    source.Copy
    destination.PasteSpecial xlPasteValues
    
    ' 書式のコピー
    destination.PasteSpecial xlPasteFormats
    
    ' 印刷範囲のコピー
    destinationSheet.PageSetup.PrintArea = sourceSheet.PageSetup.PrintArea
End Sub