VBAで自動化 VBA一覧 コピー&ペースト セル・値の取得と貼り付け

【VBA】データのある範囲をコピーする方法

Excel VBAを用いて、データが入力されている範囲を効率的に特定し、その範囲をコピーする手順は、多くの業務プロセスで役立ちます。プロセスを簡潔に実行する方法を説明します。

Excel VBAでデータのある範囲をコピーする方法

1: ワークシートの準備

操作するワークシートを定義します。

「DataSheet」シートをコピー元として設定します。

Sub CopyDataRange()

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("DataSheet")

2: データのある範囲を特定

データが存在する最後の行と列を使用して範囲を特定します。

・例では1列目と1行目の最終行と最終列を取得します。

・範囲をRange型の変数に格納します。

Dim lastRow As Long
Dim lastColumn As Integer
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

Dim dataRange As Range
Set dataRange = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastColumn))

【VBA】Rowsの基本的な使用方法・複数行を指定(数字・変数)・最終行取得

【VBA】columnsの基本的な使用方法・複数列を指定(数字・変数)・最終列取得

3: 範囲のコピー

特定した範囲をコピーします。このコピー操作は、後で他のシートに貼り付けるために使用されることが多いです。

・Range型の変数をクリップボードにコピーします。

dataRange.Copy

【VBA】シートのコピーを自動化(AddメソッドとCopyメソッド)

オプションとして、他のワークシートに直接貼り付けることも可能です。

・コードを記載したブックの「TargetSheet」シートにコピーデータを貼り付けます。

Dim targetWs As Worksheet
Set targetWs = ThisWorkbook.Sheets("TargetSheet")
targetWs.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

end Sub

【注意点】

  • 範囲の特定
    データの範囲を特定する際には、正確に最後の行と列を求める必要があります。誤った範囲をコピーすると、不完全なデータが処理される可能性があります。
  • パフォーマンスの考慮
    大量のデータを扱う場合、コピー操作はパフォーマンスに影響を与えることがあります。不要なスクリーン更新を避けるためにApplication.ScreenUpdating = Falseを設定すると良いでしょう。【VBA】Application.ScreenUpdatingプロパティの使用方法と特徴

まとめ

Excel VBAを使用してデータのある範囲をコピーする方法は、データ管理、レポートの作成、またはデータの移行において非常に重要です。上記の手順に従うことで、効率的かつ正確にデータを操作することが可能です。

-VBAで自動化, VBA一覧, コピー&ペースト, セル・値の取得と貼り付け