さらにペーストには、形式を選択して貼り付けに当たる、PasteSpecialがあります。
- Copyメソッド: Rangeオブジェクト.Copy(コピー先Rangeオブジェクト)
コピー先を省略した場合、クリップボードに保存されます。
- Pasteメソッド: Worksheet オブジェクト.paste(ペースト先Rangeオブジェクト、Link)
元データの間にリンクするなら、LinkをTrueにします。既定値はFalseです。
Pasteメソッドはクリップボードの内容に合うように貼り付け先範囲を調節しますので、
貼り付け先は、左上端セルを指定してください。
- PasteSpecialメソッド: Rangeオブジェクト.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
Paste (省略可能)貼り付ける部分を指定
Operation (省略可能)貼り付けの演算方法を指定
SkipBlanks (省略可能)空白のセルを貼り付けの対象にしないようにするには、True を指定。既定値は False
Transpose (省略可能)貼り付けのときにデータの行と列を入れ替えるには、True を指定。既定値は False
リボンを使用した「コピー方法 - 初心者向けexcelの使い方」を掲載しています、参照してください。
「Paste」の定数
xlPasteAll |
すべて |
-4104 |
xlPasteFormulas |
数式 |
-4123 |
xlPasteValues |
値 |
-4163 |
xlPasteFormats |
書式 |
-4122 |
xlPasteComments |
コメント |
-4144 |
xlDataValidation |
入力規則 |
6 |
xlPasteAllExceptBorders |
罫線を除く全て |
7 |
xlColumnWidths |
列幅 |
8 |
「Operation」の定数
xlPasteSpecialOperationNone |
しない |
-4142 |
xlPasteSpecialOperationAdd |
加算 |
2 |
xlPasteSpecialOperationSubtract |
減算 |
3 |
xlPasteSpecialOperationMultiply |
乗算 |
4 |
xlPasteSpecialOperationDivide |
除算 |
5 |
コピーと貼り付けを行うVBAの標準モジュールコード
'範囲コピー
Public Sub DoCopy()
Range("A1:B4").Copy
End Sub
'値のみ貼り付け
Public Sub DoPasteValues()
Range("D2").PasteSpecial Paste:=xlValues
End Sub
'数式のみ貼り付け
Public Sub DoPasteFormulas()
Range("D2").PasteSpecial Paste:=xlFormulas
End Sub
'書式のみ貼り付け
Public Sub DoPasteFormats()
Range("D2").PasteSpecial Paste:=xlFormats
End Sub
'切り取りモード、コピー モード OFF
Public Sub DoCutCopyModeOff()
Application.CutCopyMode = False
End Sub
実行前
コピー元のデータです。
A4にはSUM(A1:A3)の数式が入力されていて、フォントのサイズや色を変更しています。
Excel実行結果
DoCopyから順に行い、動作を確認してください。