別のワークブックのワークシートを読み込むサンプルコード

VBA

次は、自分のワークブックから別のワークブックのワークシートを読み込むサンプルコードを紹介していく。

もちろん、別のワークブックにあるワークシートは必ず1つだけとは限らない。複数の時もある。
なので、ワークシートの名前できちんと指定してあげないと混乱させてしまうのでそこも気を付けるべし、である。

では、今回のサンプルコードを下に紹介していく。
そのままコピーできるのでぜひ色々とテストしてみてほしい。

Option Explicit
Private Sub set_workbook()

On Error GoTo Error
Dim wbActive As Workbook        '当ワークブック
Dim ansWorkbook As Workbook     '別ワークブック
Dim asnWorksheet As Worksheet   '別ワークブック内のワークシート(Sheet1)

    '当ワークブック
    Set wbActive = ThisWorkbook
    Set ansWorkbook = Workbooks.Open("別ワークブック読込.xlsm")
    Set asnWorksheet = ansWorkbook.Worksheets("Sheet1")
    
    If Not (wbActive Is Nothing) Then Set wbActive = Nothing
    If Not (ansWorkbook Is Nothing) Then Set ansWorkbook = Nothing

Exit Sub

Error:
 'エラーメッセージ
MsgBox "エラーが発生しました" & _
    vbCrLf & "エラー番号: " & Err.Number & _
    vbCrLf & "エラー内容: " & Err.Description, vbExclamation
If Not (wbActive Is Nothing) Then Set wbActive = Nothing

End Sub

別のワークブック内のワークシートの名前は今回はSheet1ということにしているけど、もちろん、別の名前になっていた場合はその名前を入れて指定することもできるよ。

例えば、別に指定したいワークブック内のワークシートの名前が「Sample」になっていた場合は、このようにしてあげればよい。

Set asnWorksheet = ansWorkbook.Worksheets("Sample")

ちなみに、このコードをかみ砕いて説明すると、

Set ansWorkbook = Workbooks.Open("別ワークブック読込.xlsm")

この「ansWorkbook」は、もちろん「別ワークブック読込.xlsm」を変数にセットしたもの。
そして、次はこの「ansWorkbook」というワークブックの中のワークシートを指定するわけなので、

Set asnWorksheet = ansWorkbook.Worksheets("Sheet1")

ansWorkbook.Worksheets ← ansWorkbook内のワークシート、ということになる。

このようにして、
何のワークブックの 何というワークシート
というところまで指定してあげる必要がある、と覚えておくと簡単に書ける。

それでは、次は実際にワークシート内のセルを指定する方法を説明していく。

タイトルとURLをコピーしました