6/28/2022

Excel。VBA。表をコピーする。値でコピーするにはどうしたらいいの【COPY】

Excel。VBA。表をコピーする。値でコピーするにはどうしたらいいの

<Excel VBA:COPYメソッド>

Excel VBAで、コピーするプログラム文をつくることから確認しておきます。


A1:D7の表を、A9を起点として、そのままコピーするには、1行だけで、つくることができます。


Sub ssコピー()

    Range("a1").CurrentRegion.Copy Range("a9")

End Sub


では、実行してみます。


とても簡単ですが、基本形なので、大切なところですね。


補足しておくと、

「Range("a1").CurrentRegion」は、A1を起点として連続しているデータ。

つまり表を範囲選択します。


「Copy Range("a9")」は、Copyメソッドをつかって、A9を起点として、貼り付けるという意味です。


書式も含めてコピーしているので、次に紹介するのは、「値のコピー」をしたい場合です。


Sub 値のコピー()

    Range("a1").CurrentRegion.Copy

    Range("a9").PasteSpecial xlPasteValues

End Sub


実行して確認してみましょう。


このように、値のコピーという形で、コピーすることができました。


プログラム文を確認してみると、

先ほどと異なっていて、

「Range("a9").PasteSpecial xlPasteValues」

と、PasteSpecialメソッドを使用して、貼り付けています。


なぜ、PasteSpecialメソッドを使うのかというと、引数である「xlPasteValues」という貼り付ける形式を使いたいからですね。


「xlPasteValues」は、値のみ貼り付けるという引数です。


貼り付け方は色々ありますので、それぞれ引数が用意されていますので、用途に合わせて引数を使い分けるといいですね。