pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA ブック開く(ファイルを開くダイアログ表示)

サンプル

Public Sub sample()
    Dim wkb As Workbook
    Set wkb = nwkbブックファイルをファイルを開くから指定("すべてのファイル,*.*")
    If wkb Is Nothing Then
        Call MsgBox("ファイルを開けられません")
    Else
        Call MsgBox(wkb.Name)
    End If
End Sub

ソースコード

'
' ブック開く(ファイルを開くダイアログ表示)
'
'引数
' Optional ByVal pstrFileFilter As String = "Excelブック,*.xlsx,Excelマクロブック,*.xlsm")
'   ファイルの候補を指定する文字列 (ファイル フィルター文字列) を指定します。
' ※https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.getopenfilename のFileFilterパラメーター
'URL https://pgbigoroku.hatenablog.com/entry/2022/08/18/112717
'2022/8/18
Public Function nwkbブックファイルをファイルを開くから指定(Optional ByVal pstrFileFilter As String = "Excelブック,*.xlsx,Excelマクロブック,*.xlsm") As Workbook
    On Error GoTo errnwkbブックファイルをインプットファイルから入力
    Dim strFilePath As String
    strFilePath = Application.GetOpenFilename(Filefilter:=pstrFileFilter)
    If strFilePath = "" Then
        Set nwkbブックファイルをファイルを開くから指定 = Nothing
    End If
    Set nwkbブックファイルをファイルを開くから指定 = Workbooks.Add(strFilePath)
Exit Function
errnwkbブックファイルをインプットファイルから入力:
    Set nwkbブックファイルをファイルを開くから指定 = Nothing
    Exit Function
Resume Next
End Function