Excel VBAを使用して、ワークシート間でデータをコピー&ペーストすることは、日常的な業務でよく発生するタスクです。以下の手順とスクリプトは、別のシートから値をコピーして別のシートに貼り付ける方法を説明します。
Excel VBAで別シートの値を別シートにコピー&ペーストする方法
1: シートの準備
コピー元のシートと貼り付け先のシートを定義します。
Sub CopyPasteValuesBetweenSheets()
Dim sourceWs As Worksheet, targetWs As Worksheet
Set sourceWs = ThisWorkbook.Sheets("SourceSheet")
Set targetWs = ThisWorkbook.Sheets("TargetSheet")
2: コピー&ペースト操作
データをコピーしてから、目的のシートに貼り付けます。
SourceSheetのA列の上位10行をコピーして、TargetSheetのB列に値のみを貼り付けます。
' A列のデータをB列にコピーする場合
sourceWs.Range("A1:A10").Copy
targetWs.Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
【VBA】Excel VBAのPasteSpecialメソッドの活用方法
3: クリップボードをクリア
コピー&ペースト操作後にクリップボードをクリアすることは、不要なメモリ使用を避けるために重要です。
Application.CutCopyMode = False
■特徴と注意点
- 値のみを貼り付ける
PasteSpecialメソッドのPaste:=xlPasteValuesオプションを使用して、数式ではなく値のみを貼り付けます。 - 貼り付け先の範囲指定
貼り付け先の範囲は正確に指定する必要があります。不正確な範囲指定はデータの誤配置を引き起こす可能性があります。 - パフォーマンスの最適化
大量のデータを扱う場合、Application.ScreenUpdatingやApplication.Calculationを一時的に無効にすることで処理速度を向上させることができます。
まとめ
Excel VBAを用いた別シートへの値のコピー&ペーストは、データ整理、レポート作成、データベースの更新など、多くの用途に役立ちます。上記のサンプルコードは基本的な操作を示していますが、実際の業務ではこれをカスタマイズして特定のニーズに合わせることが可能です。