VBAで外部ブック参照

最近はChatGPTでマクロのサンプルを作って手直ししたりしてるのですが、結構便利なので自分用の資料として置いていこうと思います😌

Sub CopyColumnFromAnotherWorkbook()
    Dim sourceWorkbook As Workbook
    Dim targetWorksheet As Worksheet
    Dim sourceWorksheet As Worksheet
    Dim lastRow As Long
    Dim sourceRange As Range
    Dim cell As Range

    ' コピー元のブックを開く
    Set sourceWorkbook = Workbooks.Open("C:PathToSourceWorkbook.xlsx")

    
' コピー元の最初のシートを取得
    Set sourceWorksheet = sourceWorkbook.Sheets(1)

    

    ' コピー先のシートを指定(デフォルトは1番目のシート)
    Set targetWorksheet = ThisWorkbook.Sheets("Sheet1")    

    ' コピー元のA列の最終行を取得
    lastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, 1).End(xlUp).Row  

    ' コピー元のA列の値をコピー先に貼り付け
    Set sourceRange = sourceWorksheet.Range("A1:A" & lastRow)    

    ' コピー元のA列の各セルをチェックし、空白でない場合にのみコピー先に貼り付け

    For Each cell In sourceRange
        If Not IsEmpty(cell.Value) Then
            targetWorksheet.Cells(cell.Row, 1).Value = cell.Value
        End If
    Next cell
    

    ' コピー元のブックを閉じる(保存しない)
    sourceWorkbook.Close SaveChanges:=False

End Sub