セル -> コピー、切り取り、貼り付け

Posted by muchag | Excel VBA |
初回投稿:2016-03-19 (土) 10:30:45 | 最終更新:2016-03-19 (土) 11:25:03

大昔、VBA を始めた頃に、「マクロ記録」を利用していた名残なのか
コピーのときは、コピーしてペースト、というコードを書いてしまう癖があるな~。
でも、本当は、ただの貼り付けなら1行なのよね。

なので、今更ながら、まとめてみる。

【環境】
Excel: 2010
書式
[evba language=”vb” firstline=”” highlight=””] ‘ Range.Copy メソッド
式.Copy(Destination)

‘ Range.Cut メソッド
式.Cut(Destination)
[/evba]

  1. Destination
    1. オプション
    2. バリアント型 (Variant)
    3. コピー先のセル範囲。この引数を省略すると、クリップボードにコピーされます。
  2. 戻り値
    1. バリアント型 (Variant)
[evba language=”vb” firstline=”” highlight=””] Worksheets(“Sheet1”).Range(“A1:D4”).Copy _
destination:=Worksheets(“Sheet2”).Range(“E5”)
[/evba]
貼り付け
Paste

クリップボードの内容をオブジェクトに転送します。
[evba language=”vb” firstline=”” highlight=””] object.Paste
[/evba]

[evba language=”vb” firstline=”” highlight=””] Worksheets(“Sheet2”).Range(“E5”).Paste
[/evba]
PasteSpecial

Range をクリップボードから指定範囲に貼り付けます。
[evba language=”vb” firstline=”” highlight=””] 式.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
[/evba]

  1. Paste
    1. オプション
    2. XlPasteType
    3. 範囲の中で貼り付ける部分を指定します。
  2. Operation
    1. オプション
    2. XlPasteSpecialOperation
    3. 貼り付けの操作を指定します。
  3. SkipBlanks
    1. オプション
    2. バリアント型 (Variant)
    3. クリップボードに含まれる空白のセルを貼り付けの対象にしないようにするには、True を指定します。既定値は False です。
  4. Transpose
    1. オプション
    2. バリアント型 (Variant)
    3. 貼り付けのときにデータの行と列を入れ替えるには、True を指定します。既定値は False です。
XlPasteType
名前 説明
xlPasteAll -4104 すべてを貼り付けます。
xlPasteAllExceptBorders 7 輪郭以外のすべてを貼り付けます。
xlPasteAllMergingConditionalFormats 14 すべてを貼り付け、条件付き書式をマージします。
xlPasteAllUsingSourceTheme 13 ソースのテーマを使用してすべてを貼り付けます。
xlPasteColumnWidths 8 コピーした列の幅を貼り付けます。
xlPasteComments -4144 コメントを貼り付けます。
xlPasteFormats -4122 コピーしたソースの形式を貼り付けます。
xlPasteFormulas -4123 数式を貼り付けます。
xlPasteFormulasAndNumberFormats 11 数式と数値の書式を貼り付けます。
xlPasteValidation 6 入力規則を貼り付けます。
xlPasteValues -4163 値を貼り付けます。
xlPasteValuesAndNumberFormats 12 値と数値の書式を貼り付けます。
XlPasteSpecialOperation
名前 説明
xlPasteSpecialOperationAdd 2 コピーしたデータは、対象セルの値に追加されます。
xlPasteSpecialOperationDivide 5 コピーしたデータは、対象セルの値によって分割されます。
xlPasteSpecialOperationMultiply 4 コピーしたデータには、対象セルの値が掛けられます。
xlPasteSpecialOperationNone -4142 貼り付け操作で計算は行われません。
[evba language=”vb” firstline=”” highlight=””] With Worksheets(“Sheet1”)
.Range(“C1:C5”).Copy
.Range(“D1:D5”).PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
End With
[/evba]
Posted by muchag | Excel VBA |
初回投稿:2016-03-19 (土) 10:30:45 | 最終更新:2016-03-19 (土) 11:25:03

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment