VBAでセルのコピーをするにはどのようにしたら良いでしょうか?

ここでは以下に示すセルのコピー方法について説明します。





01.単一セルの値コピーをするには?

はじめに単一のセルの値をコピーをする方法を見ていきましょう。

書式を以下に示します。

コピー先セル = コピー元セル

例えば、A1セルの値をA3セルにコピーしたい場合は、以下のようにします。

    Range("C1") = Range("A1")

実行例を以下に示します。

値コピーですので、7という値だけがコピーされることがわかります。



02.範囲を指定して値コピーをするには?

範囲を指定して値コピーをする場合は以下の書式を使用します。

Range("コピー先のセル範囲").Value = Range("コピー元のセル範囲").Value

この書式を使用する場合はValueプロパティを省略できません。

また、コピー元の範囲サイズとコピー先の範囲サイズは合わせる必要がありますので注意してください。

以下は、A1〜C1の範囲のセルの値を、A3〜C3の範囲にコピーする例です。

    Range("A3:C3").Value = Range("A1:C1").Value

実行例を以下に示します。

A1〜C1のセルが、A3〜C3にコピーされていることがわかります。



03.書式を含めてコピーをするには?

書式を含めてコピーするには以下の書式を使用します。

expression.Copy コピー先セル

expressionには、ActiveCellやRannge, Cellなどを指定します。

以下は、A1のセルの値を、C1にコピーする例です。

    Cells(1, 1).Copy Cells(1, 3)
'以下でも同じ
'Range("A1").Copy = Range("C1")

実行例を以下に示します。

A1のセルが、書式を含めてC1にコピーされていることがわかります。



04.別のシートに値をコピーするには?

別のシートに値をコピーするには、上記で学んだコピー方法の手前にワークシートを指定するだけです。

書式を以下に示します。

Worksheets("コピー先シート名").コピー先セル = Worksheets("コピー元シート名").コピー元セル

Worksheets("コピー先シート名").Range("コピー先のセル範囲").Value = Worksheets("コピー元シート名").Range("コピー元のセル範囲").Value

Worksheets("コピー元シート名").expression.Copy Worksheets("コピー先シート名").コピー先セル

expressionには、ActiveCellやRannge, Cellなどを指定します。

以下は、Sheet1のA1のセルの値を、Sheet2のC1にコピーする例です。

    Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("C1")


05.数式をコピーするには?

数式をそのままコピーするには、以下の書式を使用します。

expression = expression.Fomula

expressionには、ActiveCellやRannge, Cellなどを指定します。

以下は、D1の数式を、D3にコピーする例です。

    Range("D3") = Range("D1").Formula

実行例を以下に示します。

D1のセルには「=A1*B1」が入っているのですが、D3にも同じ「=A1*B1」がコピーされているのがわかります。



同じ式をコピーするのではなく、相対的にコピーするには以下の書式を使用します。

expression = expression.FomulaR1C1

以下は、D1の数式を、D3にコピーする例です。

              Range("D3") = Range("D1").FormulaR1C1
          

実行例を以下に示します。

D1のセルには「=A1*B1」が入っているのですが、相対的にコピーされるのでD3には「=A3*B3」がコピーされているのがわかります。



Copyright © HIRO's.NET All Rights Reserved