範囲を指定して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は、めっちゃ頼りになるやつです
これからもたくさんでてきますよ~
コメント