銀河鉄道

【VBA】ブックを開く|OpenBook

サムネイル
[VBA]openbook

指定ブックを開き、開いたブックのWorkBookオブジェクトを返す

' Open a workbook by path or File object
' パス文字列 または FSOのFileオブジェクトでブックを開く

Public Function OpenBook(ByVal file As Variant) As Workbook
    Dim path As String
    
    ' 型判定(文字列 or Fileオブジェクト)
    Select Case TypeName(file)
        Case "String"
            path = CStr(file)
        Case "File"
            path = file.Path
        Case Else
            Err.Raise vbObjectError + 1000, "OpenBook", _
                      "引数はファイルパス文字列かFSO.Fileを指定してください"
    End Select
    
    ' 存在確認
    If Dir(path, vbNormal) = "" Then
        Err.Raise vbObjectError + 1001, "OpenBook", _
                  "指定ファイルが存在しません: " & path
    End If
    
    ' 実際に開く
    Set OpenBook = Workbooks.Open(path)
End Function
  • TypeNameで引数の型をチェック
  • Err.Raiseで発生箇所(Source)を "OpenBook" として明示
  • Dirでファイル存在確認 → これで「ファイルなし」のケースに対応

Referenced Insights

| Variant|バリアント |
| TypeName|型名 |
| File Object|ファイルオブジェクト |
| Error Handling|エラーハンドリング |
| Workbook Open|ブックを開く |

Keep the function strict
in type checking
and safe in file handling.

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧