ブックやシートを、オブジェクト変数に取得する

タイトルのサンプルマクロです。色々なケースで、ブックやシートをオブジェクト変数に入れる方法を記載しました。

Option Explicit

' ブックやシートを、オブジェクト変数に取得
Private Sub GetObject()
    Dim wb As Workbook
    Dim ws As Worksheet
    
    ' 新規ブック
    Set wb = Workbooks.Add
    
    ' ブックを開く
    Dim fullPath As String
    fullPath = "C:\TEMP\Excel.xlsx"
    Set wb = Workbooks.Open(fullPath)

    ' 開いているブックを取得
    Dim fileName As String
    fileName = "Excel.xlsx"
    Set wb = Workbooks(fileName)

    ' 新規シート
    Set ws = Worksheets.Add

    ' コピーしたシート
    ' 右端にシートをコピーする
    Worksheets(1).Copy after:=Worksheets(Worksheets.Count)
    ' 右端のシートを、オブジェクト変数に入れる
    Set ws = Worksheets(Worksheets.Count)
    
    ' シートを新規ブックにコピー
    Worksheets(1).Copy
    ' アクティブブックを取得
    Set wb = ActiveWorkbook
    ' ブックの最初のシートを取得
    Set ws = wb.Worksheets(1)

End Sub

ブック・シートとも、Copyは、直接setできないので、工夫が必要です。

Follow me!