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」は、値のみ貼り付けるという引数です。
貼り付け方は色々ありますので、それぞれ引数が用意されていますので、用途に合わせて引数を使い分けるといいですね。