Excelブックを開きアクティブにする
はじめに
マクロ処理にてファイルを開きアクティブにする処理が必要となったのですが、ファイルの有無や、既に開いてるか否かを判定するのが意外と面倒だったのでコピペすれば済むようにシェアします。
ソース
' エクセルブックを開きアクティブにする。既に開いている場合はアクティブにして終了
' 引数1:FilePath 開きたいエクセルファイルのパス
' 戻り値:ファイルが存在しない場合False、それ以外の場合はアクティブにしてTrueを返す
Function OpenOrActiveWorkBook(FilePath As String) As Boolean
Dim str As String
Dim wb As Workbook
'ファイルの存在チェック
str = Dir(FilePath)
If str = "" Then
' ファイルが存在しない場合falseを返す
OpenOrActiveWorkBook = False
Exit Function
End If
'同名ブックがすでに開かれているかチェック
For Each wb In Workbooks
If wb.Name = str Then
' 既に開いている場合、アクティブにした上でtrueを返す
OpenOrActiveWorkBook = True
wb.Activate
Exit Function
End If
Next wb
'ファイルが存在し、まだ開かれていない場合は開き、trueを返す
Workbooks.Open FilePath
OpenOrActiveWorkBook = True
End Function
おわりに
今回は開いたブックを必ずアクティブにする必要があったため、このようなソースにしました。