VBA ti permette di scegliere un file da aprire usando il Application.GetOpenFilename metodo. In questo tutorial imparerai come aprire una finestra di dialogo file e impostare i parametri.
Se vuoi imparare come aprire e chiudere un file, puoi cliccare su questo link: VBA Apri/Chiudi File
Apri una finestra di dialogo File in VBA
Se vuoi aprire un file in VBA, devi prima aprire una finestra di dialogo per scegliere un file. Ecco il codice:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename( |
Come puoi vedere, il metodo ha diversi parametri. FileFilter ti consente di filtrare i tipi di file di cui hai bisogno, nel nostro caso i file .xlsx.
Nel Titolo parametro, è possibile impostare un titolo della finestra di dialogo. Se vuoi consentire l'apertura di più file, devi impostare Selezione multipla a Vero. Se non si imposta questo parametro, è possibile selezionare un solo file.
Immagine 1. Apri una finestra di dialogo file
Come puoi vedere nell'immagine 1, la finestra di dialogo appare con il titolo Scegli un file Excel. Vengono filtrati solo i file Excel e possiamo selezionare più file.
Apri una finestra di dialogo File in una cartella specifica
Se vuoi aprire una finestra di dialogo in una cartella specifica, devi usare il metodo .FileDialog con il parametro msoFileDialogFilePicker. Nell'esempio, apriremo una finestra di dialogo nella cartella C:\Cartella VBA. Ecco il codice:
123456789101112131415161718192021 | Dim fd As Office.FileDialogDim strFile As StringImposta fd = Application.FileDialog(msoFileDialogFilePicker)Con fd.Filtri.Cancella.Filtri.Aggiungi "File Excel", "*.xlsx?", 1.Title = "Scegli un file Excel".AllowMultiSelect = False.InitialFileName = "C:\Cartella VBA"Se .Mostra = Vero AllorastrFile = .SelectedItems(1)Finisci seTermina con |
Per prima cosa devi dichiarare la variabile fd genere Office.FileDialog e la variabile stringa per l'acquisizione di file:
12 | Dim fd As Office.FileDialogDim strFile As String |
Dopo questo, è necessario impostare fd a Application.FileDialog(msoFileDialogFilePicker):
1 | Imposta fd = Application.FileDialog(msoFileDialogFilePicker) |
Ora, dentro Con fd Fine con, possiamo impostare più parametri:
1234567 | .Filtri.Cancella.Filtri.Aggiungi "File Excel", "*.xlsx?", 1.Title = "Scegli un file Excel".AllowMultiSelect = False |
Qui cancelliamo i filtri dei file (.Filtri.Cancella) e impostarlo su .xlsx (.Filters.Add “File Excel”, “*.xlsx?”, 1).
Inoltre, possiamo impostare il titolo della finestra di dialogo: .Title = “Scegli un file Excel”.
Possiamo limitare un utente a selezionare un solo file: .AllowMultiSelect = False
Per aprire una finestra di dialogo nella cartella che vogliamo, dobbiamo inserire questa riga di codice:
1 | .InitialFileName = "C:\Cartella VBA" |
Alla fine ci basterà aprire la finestra di dialogo con tutti i parametri precedentemente impostati:
12345 | Se .Mostra = Vero AllorastrFile = .SelectedItems(1)Finisci se |
Quando eseguiamo questo codice, nella cartella viene visualizzata la finestra di dialogo per l'apertura del file C:\Cartella VBA:
Immagine 2. Apri una finestra di dialogo file in una cartella specifica