エクセルVBAで、セルを別シートにコピーする方法を紹介しています。セルを別シートコピーするには、RangeオブジェクトのCopyメソッドを使います。セルのコピーはよく使う操作です。ここでは、セルの値、セル範囲を別セル、別シートにコピーする方法も紹介しています。同じコピーの操作をよく使う、定期的に行う場合は、VBAでセルのコピーをしましょう。断然、仕事がスピードアップ、しかも、仕事が楽で入力ミスがなくなります。さらに、ボタンを作成してマクロ登録をすると、ボタンをクリックするだけで、コピーができます。ぜひ、覚えましょう。仕事がアップできます。
エクセルVBAのCopyメソッドは、セルの内容をコピーします。
Copyメソッドを使うと、セルの値だけでなく、セル範囲をコピー、セルを別シートにコピーすることもできます。
Copyメソッドの構文
expression.Copy(Destination)
expression | 必ず指定します。対象となる Range オブジェクトを返すオブジェクト式を指定します。 |
Destination | 省略可能です。バリアント型 (Variant) の値を使用します。コピー先のセル範囲を指定します。この引数を省略すると、クリップボードへコピーされます。 |
セルの値をコピーする
エクセルVBAでセルを別セルにコピーしてみましょう。
Sub セルのコピー()
Range(“A1”).Copy Range(“D5”)
End Sub
セルA1の値が、D5にコピーされます。
セルの値のコピーは、Copyメソッドを使わなくてもできます。
次のVBAで、セルのコピーを実行してみましょう。
Sub セルの値を転記()
Dim Cop As String
Cop = Range(“A1”).Value
Range(“C1”).Value = Cop
End Sub
セルA1の値が、C1にコピーされます。
セルの範囲をコピーする
セルの範囲を、コピーしてみましょう。
Sub セル範囲をコピー()
Range(“A1:C3”).Copy Range(“F1:H3”)
End Sub
セル範囲「A1:C3」の値が、セル範囲「F1:H3」にコピーされます。
セル範囲のコピーは、次のように省略することもできます。
Sub セル範囲をコピーA()
Range(“A1:C3”).Copy Range(“F1”)
End Sub
コピー元は省略できません。必ずセル範囲を指定しましょう。
コピー先は省略できるので、範囲が広い場合は省略した方が楽です。
セルの値を範囲にコピーする
セルの値を範囲を、コピーしてみましょう。
Sub セル値を範囲にコピー()
Range(“A1”).Copy Range(“F1:H3”)
End Sub
「A1」の値が、セル範囲「F1:H3」にコピーされます。
こちらの記事もご覧ください。⇒エクセルVBAでセルの値を取得(転記)する方法
セルを別シートにコピーする
エクセルVBAで、セルを別シートにコピーするVBASです。
Sub セルを別シートのコピー()
Worksheets(“Sheet1”).Range(“A2:C5”).Copy Worksheets(“Sheet2”).Range(“D2:F5”)
End Sub
シート「Sheet1」セル範囲「A2:C5」の値が、シート「Sheet2」セル範囲「D2:F5」にコピーされます。
別シートへのセル範囲コピーは、次のように省略することもできます。
Sub セルを別シートのコピーA()
Worksheets(“Sheet1”).Range(“A2:C5”).Copy Worksheets(“Sheet2”).Range(“D2”)
End Sub
セル範囲が広い場合は、この方がすっきりとして簡単です。
セルのコピーには形式を指定できる
別シートにセルをコピーは、エクセルVBA Copyメソッドでできます。ですが、 Copyメソッドを使うと、セルの値のコピーだけでなく、形式を指定してコピーもできます。例えば、セルの内容を、全て貼付け、数式だけ、書式だけ・・といったように、形式を指定して貼り付けられます。形式を細かく指定してコピーしたい場合に便利です。セルのコピーは普段からよく使う操作です。同じコピーをよく使う場合は、エクセルVBAでセルのコピーを作成しておきましょう。仕事をより効率よくするには、VBAを実行するボタンを作成することをおすすめします。
こちらの記事もご覧ください。⇒エクセルVBAで形式を選択してセルをコピー、貼付けする!