VBA — wybór i otwieranie pliku w Excelu

Jak w VBA pokazać okno wyboru pliku i otworzyć wskazany skoroszyt. Obsługa anulowania oraz filtr plików Excel.

Najkrócej:

Application.GetOpenFilename pozwala użytkownikowi wskazać plik bez wpisywania ścieżki na sztywno.

Gotowy kod

Skopiuj makro

VBA
Sub WybierzIOtworzPlik()
    Dim filePath As Variant
    Dim wb As Workbook

    filePath = Application.GetOpenFilename( _
        FileFilter:="Pliki Excel (*.xlsx;*.xlsm),*.xlsx;*.xlsm", _
        Title:="Wybierz plik Excel")

    If VarType(filePath) = vbBoolean Then Exit Sub

    Set wb = Workbooks.Open(CStr(filePath))

    MsgBox "Otwarto: " & wb.Name
End Sub
Dostosowanie

Co zmienić w kodzie?

01

FileFilter możesz rozszerzyć o inne typy plików, np. .xlsb.

02

Po Workbooks.Open możesz od razu przypisać otwarty skoroszyt do zmiennej i pracować na nim dalej.

03

Warunek z VarType zabezpiecza makro, gdy użytkownik kliknie Anuluj.

Wyjaśnienie

Jak działa ten kod?

GetOpenFilename zwraca wybraną ścieżkę, ale sam nie otwiera pliku.

Workbooks.Open otwiera skoroszyt i zwraca obiekt Workbook.

CStr zamienia zwróconą wartość Variant na tekstową ścieżkę.

Uważaj na

Najczęstsze błędy

Nie zakładaj, że użytkownik zawsze wybierze plik — obsłuż przycisk Anuluj.

Nie używaj ActiveWorkbook jako jedynego odniesienia po otwarciu pliku; lepiej zachować go w zmiennej wb.

Przy plikach tylko do odczytu możesz potrzebować dodatkowych argumentów Workbooks.Open.