5.9 行や列の切り取りと貼り付け
行や列の切り取り→貼り付けの方法です。5.8と似てますが気にしないで下さい(笑)。切り取りは???.Cut、貼り付けは???.Pasteを使います。もちろん、Destination:=での高速切り取り貼り付けも可能です!

ちなみに、???の部分はどちらもRangeColumnsRowsSelectionなど、行や列を表すオブジェクトです。行や列の指定方法については、5.1 セルや行列を扱うための基本をどうぞ。
1行だけを切り取り→貼り付け
セルの切り取り→貼り付けを行うときとRange(???)指定が違うだけでノリは同じ!例では、2行目を切取って3行目に貼り付けています。

ちなみに、コピー→貼り付けに使えた書式だけを…は、残念ながら切り取り→貼り付けは使えません。


Sub prcCutPasteRow1()

    '1行を切り取り→貼り付け(低速)
    Range("2:2").Cut
    Range("3:3").Paste

End Sub
 ※このエクセルマクロはワークシート内へ記述するマクロです


もちろん、Destination:=???での高速切り取り貼り付けも可能です。

Sub prcCutPasteRow2()

    '1行を切り取り→貼り付け(高速)
    Range("2:2").Cut Destination:=Range("3:3")

End Sub
 ※このエクセルマクロはワークシート内へ記述するマクロです
複数の行を切り取り→貼り付け
次に、複数の行を行まとめて切り取り→貼り付けする場合です。例えば、1〜3行目までの3行を切り取り、5〜7行目に貼り付けを行うには次の通りにします。

ちなみに、???.Cut???.Pasteで行った場合の貼り付け先指定は、範囲指定でも、先頭行のみ指定でもどちらの指定でも可能です。

ただし、Destination:=???による高速切り取り貼り付けの場合の貼り付け先指定は、切り取り元と同じ範囲が必要という扱いの違いがあるので、Happy! Happy! Islandでは切り取り元と同じ範囲を指定するに統一してます。


Sub prcCutPasteRows1()

    '切り取り元、貼り付け先ともに範囲を指定
    Range("1:3").Cut
    Range("5:7").Paste

End Sub

 または

Sub prcCutPasteRows2()

    '貼り付け先は先頭行だけを指定するだけでもOK!
    'ちなみに、高速で…
    Range("1:3").Cut Destination:=Range("5:7")

End Sub
列の切り取り・貼り付け
列の切り取り→貼り付けは、Rangeの部分を列指定に変えるだけ(5.1 セルや行列を扱うための基本)で、必要なメソッドは同じです。なので、例は省略します…が手抜きではありません(汗)
Copyright(C) 1999-2006 結城圭介。 All rights reserved