VBA
【VBA】データの最終行を開かずに(外部参照で)転記する方法
日々の業務では、別のファイルからデータをコピーし、特定のシートの最終行に追加することがよくあります。手作業で行うと時間がかかるだけでなく、ミスも増えます。この記事では、VBAを使って簡単に且つ正確にデータを転記する方法をお伝えします。
💡
サンプルコード
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.
シート名や列番号が正しいか確認してください。
💡
