7/21/2017

Excel。マクロ010。コピー&カット&ペーストを確認してみよう【xlPasteValues】

Excel。マクロ010。コピー&カット&ペーストを確認してみよう

<VBA>

事務職でも、少しExcel VBAを知っていると、
確かに作業効率は改善されるようですが、
難しいと感じている人も多いようです。

とはいえ、少しずつでいいので、慣れていくといいですね。

ということで、
今回は、【コピー&カット&ペースト】という基本操作を
確認していきましょう。

次の表を使って確認していきます。

コピー
A2:F8の表を、A10を基点にしてコピーをしてみます。

Sub コピー()
    Range("a2").CurrentRegion.Copy Range("a10")
End Sub

または、
Sub コピー()
    Range("a2","f8").Copy Range("a10")
End Sub
でもOKですね。

では、実行してみましょう。

コピーできましたね。
このVBAは、A2を基点とした表を範囲選択して、A10を基点としてコピーする
ということを行っています。

なお、CopyのあとのRange("a10")は、Destinationに該当しますので、
この引数を気際しない場合には、
クリップボードにデータがコピーされます。

なので、一つの表を複数コピーする場合には、
次のようにペースト使うといいですね。

Sub コピー複数()
    Range("a2").CurrentRegion.Copy
    ActiveSheet.Paste Range("a10")
    ActiveSheet.Paste Range("a18")
    Application.CutCopyMode = False
End Sub

Application.CutCopyMode = False
は、範囲選択してコピーした後に、範囲選択したところが、
破線で点滅していますよね。

あれをストップさせる一行です。

なくても、いいのですが、せっかくなので、追加してみました。

それでは、実行してみましょう。

では、カット。移動をやってみましょう。

Sub カット()
    Range("a2").CurrentRegion.Cut Range("a10")
End Sub

実行してみましょう。

このように、簡単に移動することができましたね。

最後は、現場で多い、『値』での貼り付けをやってみましょう。

形式を指定して貼り付けをする中では結構実行する処理の一つですね。

Sub 値のコピー()
    Range("a2").CurrentRegion.Copy
    Range("a10").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub

Range("a2").CurrentRegion.Copy
は、A2を基点とした表をコピーします。

Range("a10").PasteSpecial xlPasteValues
は、A10を基点として、
「xlPasteValues」すなわち、『』で、貼り付けをします。

Application.CutCopyMode = False
は、範囲選択してコピーしたあとの、破線の点滅をストップします。

という事を実行します。

では、実行してみましょう。

A10を基点として、値で貼り付けることが出来ましたね。

PasteSpecialメソッド引数がありまして、
Paste」は、貼り付ける内容を指定出来る設定値があります。
Operation」は、演算をして貼り付けることができます。
SkipBlanks」は、空白セルを貼り付けの対象にしないという設定ができます。
Transpose」は、貼り付けのときに、
行と列を入れ替えて貼り付けすることができます。

今回は、コピー・ペースト・カット。
そして、形式を指定しての貼り付けの中から、
『値』での貼り付けをご紹介しました。

どれも、基本ではありますが、
Excelも、マクロVBAも基本が大事ですので、
しっかり確認しておきたいところの一つですね。