コピーや切り取ったレンジのペースト
3行マクロ 69回
コピーと貼り付けのマクロコード
コピーと貼り付けのコードを詳しく解説します。
ベースのコードは、記録のマクロから作ります。
(サンプルファイルは、こちらから 3行マクロ19回サンプルデータ)
セル範囲をコピーするCOPYメソッド
まず、下記の範囲をコピーして貼り付けるマクロを記録で作ります。
D2セルを選択して貼り付けて、記録のマクロを終了します。
できたコードは、このようなコードになりました。
こちらのコードをスリムにします。Select Selection の部分を削除して1行にします。
Sub コピー転記2() Range("B2:B5").Copy Range("D2").Select ActiveSheet.Paste End Sub
PastメソッドのオブジェクトはWorksheetです。Destination引数に貼り付け先であるセルを指定できます。
Sub コピー転記2() Range("B2:B5").Copy ActiveSheet.Paste Destination:=Range("D2") End Sub
すると、コードは、さらに簡略化できます。
クリックボードのコピーを開放する
CutCopyModeをFalseにすることで、コピー元のセル範囲を囲んでいた緑の点線表示を消し、クリップボードが保持しているデータを開放します。
CopyメソッドのDestinationを使う
さらに、CopyしてPastしてという手順をCopyメソッドのDestinationを使うことで、1つにまとめてしまうことができます。
Copyメソッドは、引数にPastと同じDestinationという貼り付け先を指定する引き数をもっているのです。
Application.CutCopyMode = False は不要になります。
Application.CutCopyMode = False は不要になります。
Sub コピー転記4() Selection.Copy Destination:=Selection.Offset(0, 2) End Sub
コピー元の選択範囲の指定を楽にするコード
Selectionは、便利な範囲指定方法ですが、その範囲が広かったり、大きかったりすると、選択することも結構たいへんですね。
そういう時に、現在の範囲を指定するコードがCurrentRegionプロパティです。
そういう時に、現在の範囲を指定するコードがCurrentRegionプロパティです。
この場合は、どこでも1か所選択すれば、そのセルを含むCurrentRegionを特定できますが、
今回のように、コピーした内容を転記する場所を移動する時に使うようにするには、アクティブセルは、範囲の左上がベストです。
Sub コピー転記5() ActiveCell.CurrentRegion.Copy Destination:=ActiveCell.Offset(0, 7) End Sub
マクロを実行すると、貼り付け先は、アクディブセルから列方向に7つ移動したセルに貼り付けるという形で実行されます。