Copyメソッド

範囲を指定してCopy

セル範囲をCopyして、貼り付けます
Range(“B2:D6”) → Range(”F2”)
Range(“B2:D6”).Copy Range(“F2”)

本来はこのように書きます
Range(“B2:D6”).Copy Destination:=Range(“F2”)
Destinationは目的地と言う意味です

別シートに貼り付ける場合も同様に
Range(“B2:D6”).Copy Worksheets(”シート名”).Range(“F2”)
あるいは
Range(“B2:D6”).Copy Destination:=Worksheets(”シート名”).Range(“F2”)

形式を選択して貼り付け

その他形式を選択して、貼り付けることができます

マクロの記録で Ctrl+C →Ctrl+V をします

これはExcel 形式を選択して貼り付けのすべてを選択したのと同じです

無駄な処理を除くと、


これは結果的に、Range(“B2:D6”).Copy Range(“F2”) と同じですね!
すべてPasteする場合は、こう書く方が早い!

クリップボード

Range(“セル範囲”).Copy で引数を指定しない場合
Copyしたものはクリップボードに保存され
ます

Range(“B2:D6”).Copy

Range(“F2”).Select

ActiveSheet.Paste

形式を選択して貼り付けたい場合

RengeにPasteメソッドはありません
PasteSpecialメソッドを使います

値のみ貼り付け
クリップボードから値のみ指定して貼り付けます

Range(“F2”).PasteSpecial Paste:=xlPasteValues
PasteSpecialメソッドを使います
引数に Paste:=xlPasteValue 値のみを指定します

Range(“B2:D6”).Copy


Range(“F2”).PasteSpecial_ Paste:=xlPasteValues

形式を選択して貼り付けの 値のみ を選択します

書式のみ貼り付け
クリップボードから書式のみ指定して貼り付けます

Range(“F2”).PasteSpecial Paste:=xlPasteFormats

同様にPasteSpecialメソッドを使います
引数に Paste:=xlPasteFormats 書式のみを指定します

形式を選択して貼り付けの 書式のみ を選択します

Application.CutCopyMode = False

コピーモード(点々の表示)を解除します

Range(“セル範囲”).Copy で引数を指定しない場合
Copyしたものはクリップボードに保存され何度も使うことができます

コピーモード(点々の表示)の状態
なのでApplication.CutCopyMode = Falseが必要なのですね!


反対に Range(“セル範囲”).Copy Range(“コピー先”)のように、

引数を指定した場合は、
クリップボードに保存されませんので、
Application.CutCopyMode = False必要ありません

CurrentRegionで指定

CurentRegion とは、CTRL+shift+*で選択される範囲です
この範囲をアクティブセル領域と言います

選択されているセルから、空白行・空白列で囲まれたの領域のことです。

アクティブセル領域をSelectすると…

Sub CurrentRegionTest()
Range(“B2”).CurrentRegion.Select
End Sub

あとは、今までのCopyと同様に書くことができます

アクティブセル領域をCopyしてPaste

Sub CurrentRegionTest2()
Range(“B2”).CurrentRegion.Copy Range(“F2”)
End Sub

アクティブセル領域をCopyしてクリップボードへ
 形式を指定してPaste → コピーモード解除


Sub CurrentRegionTest3()
Range(“B2”).CurrentRegion.Copy
Range(“F2”).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

CurrentRegionは、めっちゃ頼りになるやつです
これからもたくさんでてきますよ~

コメント