この記事では、VBAを使ってセルやセルの値だけ、書式をコピーする方法を実際のVBAコードも含めて説明します。
セルのコピーは、日常的なExcelの業務でも多用するようにVBAの基本的動作のひとつです。
セルやセルの値だけ、書式、それぞれをセルからコピーするためのVBAコードを紹介しますので、ご参考になれば幸いです。
セルのコピーについては、変数を使いません。疑問に感じる方がいらっしゃるかもしれませんが、VBAのコピーの操作は実際に人間が行うそれと同様です。つまり、パソコンのクリップボードを使うため、変数は不要なのです。
この章では、ExcelのセルA1をコピーしてセルB1に貼り付けるVBAコードを紹介します。Excelで日常的に行っている「Ctrl + C」と同等の結果を返すVBAコードです。
object . Copy Destination:=object
Sub Sample()
Range(“A1”).Copy Destination:=Range(“B1”)
End Sub
Sub Sample()
Cells( 1, 1 ).Copy Destination:=Cells ( 1, 2 )
End Sub
この章では、ExcelのセルA1の値だけコピーして、セルB1に貼り付けるVBAコードを紹介します。Excelで使う「値貼り付け」と同等の結果を返すVBAコードです。
object . Value object . Value
Sub Sample()
Range(“B1”).Value = Range(“A1”).Value
End Sub
Sub Sample()
Cells( 1, 2 ).Value = Cells( 1, 1 ).Value
End Sub
この章では、ExcelのセルA1の書式だけコピーして、セルB1に貼り付けるVBAコードを紹介します。Excelで使う「書式貼り付け」と同等の結果を返すVBAコードです。
object . PasteSpecial
object . NumberFormat = object . NumberFormat
Sub Sample()
Range(“A1”).Copy
Range(“B1”).PasteSpecial Paste: = xlPasteFormats
End Sub
Sub Sample()
Range(“B1”).NumberFormat = Range(“A1”).NumberFormat
End Sub
Sub Sample()
Cells( 1, 1 ).Copy
Cells( 1, 2 ).PasteSpecial Paste: = xlPasteFormats
End Sub
Sub Sample()
Cells( 1, 2 ) .NumberFormat = Cells( 1, 1 ) .NumberFormat
End Sub
前節までは、コピー対象のセルをすべてVBAコード内で、直接、指定していましたが、VBAの最終行を取得するコードと組み合わせて、B列の最終行のセルをVBAでコピーする実用的なコードを記述してみましょう。
B列最終行のセルをコピーしたあとは、セルD1に貼り付けます。
Sub Sample()
Dim LastRow As Long
LastRow = Range(“B1”).End(xlDown).Row
Range(“B” & LastRow).Copy Destination:=Range(“D1”)
End Sub