セルデータをコピーするにはCopyメソッドを使用します。ExcelVBAを使う上でコピーや貼り付けは頻繁に使用するため、非常に重要な処理内容となります。今回はセル範囲をコピーして指定場所に貼り付けする方法について紹介します。
構文
記述方法は以下の通りとなります。
Range(”[コピー範囲]”).Copy Destination: =[貼り付け先]
[説明]:
セル範囲をコピー&貼り付けするには「Range(”[コピー範囲]”).Copy Destination: =[貼り付け先]」と記述します。[コピー範囲]にはコピーするセル範囲を記述します。[コピー範囲]は「”」(ダブルクォーテーション)で囲みます。また、コピーした範囲を貼り付けるには、Destination:=の後の[貼り付け先]に貼り付け先セルを指定します。内容を纏めると、「[コピー範囲]でコピーしたデータを、[貼り付け先]で指定したセルに貼り付けて下さい。」との意味になります。
[記述例]:
Range("A1:C3").Copy Destination:=Range("E5")
Range("A1:C3").Copy Destination:=Sheets("Sheet2").Range("E5")
使い方
使い方について具体的に説明していきます。
同じシート内にセル範囲をコピーする方法
同じシート内にセル範囲をコピー方法について説明します。
[プログラミング例]:
Sub サンプル()
Range("A1:C3").Copy Destination:=Range("E5")
MsgBox "コピーしました。"
End Sub
内容は、「A1セル~C3セルの範囲をコピーして同シート内のE5セルを先頭に貼り付けし、最後にMsgBoxで”コピーしました。”のメッセージを表示して下さい。」との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。Sheet1シートのA1セル~C3セルの範囲にデータが入力されています。<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②結果は以下の様になります。Sheet1シートのA1セル~C3セルのデータをコピーし、同シート内のE5セルを先頭に貼り付けします。また、「コピーしました。」のメッセージが表示されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
同じシート内にセル範囲をコピーする方法についての説明は以上です。
別シートにセル範囲をコピーする方法
別シートにセル範囲をコピー方法について説明します。
[プログラミング例]:
Sub サンプル()
Range("A1:C3").Copy Destination:=Sheets("Sheet2").Range("E5")
MsgBox "コピーしました。"
End Sub
内容は、「A1セル~C3セルの範囲をコピーしてSheet2シートのE5セルを先頭に貼り付けし、最後にMsgBoxで”コピーしました。”のメッセージを表示して下さい。」との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。Sheet1シートのA1セル~C3セルの範囲にデータが入力されています。<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②結果は以下の様になります。Sheet1シートのA1セル~C3セルのデータをコピーし、Sheet2シート(別シート)のE5セルを先頭に貼り付けします。また、「コピーしました。」のメッセージが表示されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
別シートにセル範囲をコピーする方法についての説明は以上です。
おわりに
今回はセル範囲をコピーする方法について説明しました。類似内容にセル範囲を切り取り&貼り付けする方法があります。是非一緒に覚えておいて下さい。
紹介動画