📘 Excel逆引き事典
VBA

【VBA】データの最終行を開かずに(外部参照で)転記する方法

日々の業務では、別のファイルからデータをコピーし、特定のシートの最終行に追加することがよくあります。手作業で行うと時間がかかるだけでなく、ミスも増えます。この記事では、VBAを使って簡単に且つ正確にデータを転記する方法をお伝えします。
💡
Pick Up おすすめ

Excelスキルをアップグレード

実務で役立つスキルを体系的に学びませんか?Udemyなら頻出テクニックを最短でマスターできます。

詳細を見る

サンプルコード

VBA
Option Explicit
Sub CopyDataToLastRow()
    Dim wbSource As Workbook, wbTarget As Workbook
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRow As Long, sourceRange As Range

    ' 外部ファイルを開く
    Set wbSource = Workbooks.Open("C:\path\to\source.xlsx")
    Set wsSource = wbSource.Sheets("Sheet1")

    ' 目的のワークブックを取得
    Set wbTarget = ThisWorkbook
    Set wsTarget = wbTarget.Sheets("Sheet2")

    ' ソースシートの最終行を取得
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    Set sourceRange = wsSource.Range("A1:A" & lastRow)

    ' データ転記先の最終行を取得
    Dim targetLastRow As Long
    targetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Row + 1

    ' データをコピー
    sourceRange.Copy Destination:=wsTarget.Range("B" & targetLastRow)

    ' 外部ファイルを閉じる
    wbSource.Close SaveChanges:=False

    MsgBox "データ転記が完了しました。"
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。
💡
Pick Up おすすめ

Excelスキルをアップグレード

実務で役立つスキルを体系的に学びませんか?Udemyなら頻出テクニックを最短でマスターできます。

詳細を見る