Pod Excelem można to zrobić na dwa sposoby:
Korzystając z biblioteki Office (funkcja bardzo podobna do WskazFolder):
Function WskazPlik(TytulOkna As String, TytulPrzycisku As String) As String Dim Okno As FileDialog Dim Wybrane As String Set Okno = Application.FileDialog(msoFileDialogFilePicker) Okno.Title = TytulOkna Okno.ButtonName = TytulPrzycisku If Okno.Show = -1 Then WskazPlik = Okno.SelectedItems(1) End If End Function |
Lub korzystając z metody Excela:
Function WskazPlik_MetodaExcel() As String WskazPlik_MetodaExcel = Excel.Application.GetOpenFilename() End Function |
Pierwsza funkcja jest nieco bardziej skomplikowana ale bardziej uniwersalna, druga jest skrajnie prosta i nie wymaga niczego poza Excelem. Oczywiście obie można rozbudować o możliwość filtrowania plików…
W komentarzach znajduje się dyskusja na temat konstrukcji wiążącej With..End With