【ExcelVBA】指定したブックを開く・閉じる方法


この記事はプロモーションを含みます。

ExcelVBA

ExcelVBAで、指定したブックを開く方法と、開いているブックを閉じる方法を解説します。

ブックを開く

ブックを開く方法を説明します。

書式

ブックを開く際の書式です。

Workbooks.Open "ブックのフルパス"

サンプル

サンプルのソースコードになります。
こちらを実行すると、下記のブックが開かれます。
・パス:C:\workspace\ExcelVBA
・ファイル名:Sample.xlsx

Sub Sample()

    Workbooks.Open "C:\workspace\ExcelVBA\Sample.xlsx"

End Sub

発生する可能性があるエラーと対策

ブックを開く際に、発生する可能性があるエラーと対策となります。

存在しないブックを開こうとする場合

存在しないブックを開こうとした場合に発生するエラーと対策になります。

存在しないブックを開こうとすると、以下のようなエラーが発生します。

このエラーの対策としては、ブックを開く前にファイルが存在するかを確認します。
以下が、サンプルのコードとなります。

このサンプルを実行すると、
ブックが存在する場合は、ブックが開かれ、
ブックが存在しない場合は「ファイルが存在しません。」と表示されます。

Sub Sample()

    Const BOOK_NAME = "C:\workspace\ExcelVBA\存在しないブック.xlsx"
    
    If Dir(BOOK_NAME) <> "" Then
        Workbooks.Open BOOK_NAME
    Else
        MsgBox ("ファイルが存在しません。")
    End If

End Sub

ブックを閉じる

ブックを閉じる方法を説明します。

書式

ブックを閉じる際の書式です。

Workbooks.Close "ブック名"

サンプル

サンプルのソースコードになります。
こちらを実行すると、下記のブックが閉じられます。
・ブック名:Sample.xlsx

Sub Sample()

    Workbooks("Sample.xlsx").Close

End Sub

発生する可能性があるエラーと対策

ブックを閉じる際に、発生する可能性があるエラーと対策となります。

開かれていないブックを閉じようとする場合

開かれていないブックを閉じようとする場合に発生するエラーと対策になります。

存開かれていないブックを閉じようとすると、以下のようなエラーが発生します。

このエラーの対策としては、ブックを閉じる前に対象のブックが開かれているかを確認します。
以下が、サンプルのコードとなります。

このサンプルを実行すると、
ブックが開かれている場合のみ、ブックを閉じる処理を実行します。

Sub Sample()

    Const BOOK_NAME = "Sample.xlsx"

    Dim wb As Workbook
    For Each wb In Workbooks
        If (wb.Name = BOOK_NAME) Then
            Workbooks(BOOK_NAME).Close
        End If
    Next

End Sub

コメント

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