FileDialog VBA

FileDialog VBA di Excel

In VBA fieldialog è una proprietà che viene utilizzata per rappresentare istanze diverse, in filedialog ci sono quattro diversi tipi di costanti che sono conosciuti come msofiledialogfilepicker che viene utilizzato per selezionare un file da un dato percorso il secondo è msofiledialogfolderpicker che il nome suggerisce è usato per scegliere una cartella e la terza è msofiledialog aperta per aprire un file e l'ultima è msofiledialogsaveas che viene utilizzata per salvare un file come nuovo file.

Ci sono determinate circostanze in cui vogliamo i dati da qualsiasi altro file o qualsiasi altro foglio di lavoro e poiché VBA viene utilizzato per automatizzare il nostro lavoro, possiamo aprire diversi altri file utilizzando VBA ed è fatto utilizzando Filedialog, la parte interessante dell'utilizzo di questo metodo è che non abbiamo bisogno di fornire il percorso del codice invece chiediamo all'utente di sfogliare il file.

Come parte del progetto VBA, potremmo richiedere di aprire altre cartelle di lavoro ed eseguire qualche tipo di attività con esse. In uno dei precedenti articoli "VBA Workbook.Open" abbiamo mostrato come aprire file con percorso specificato e file specifico. Lì, dovevamo fornire il percorso della cartella e il nome del file con la sua estensione. Ma cosa succede se ogni volta che un utente deve selezionare i diversi file dalle diverse cartelle. È qui che entra in gioco l'opzione "FileDialog".

Come funziona l'opzione FileDialog VBA?

"Se non conosci il percorso esatto, FileDialog troverà e selezionerà il file". Invece di menzionare l'indirizzo del percorso e il nome del file, possiamo presentare una finestra di dialogo di apertura del file separatamente per selezionare il file da qualsiasi cartella del computer.

Puoi scaricare questo modello Excel FileDialog VBA qui - Modello Excel FileDialog VBA

"FileDialog" è un oggetto in VBA. Per utilizzare questa opzione prima dobbiamo definire la variabile come FileDialog.

Una volta che la variabile è stata dichiarata come "FileDialog", è una variabile oggetto. Per iniziare a usarlo dobbiamo impostare l'oggetto usando Application.FileDialog.

Come possiamo vedere nell'immagine sopra, FileDialog ha quattro opzioni con esso.

  • msoFileDialogFilePicker: questa opzione apre la finestra di selezione dei file davanti all'utente per selezionare il file desiderato secondo i suoi desideri.
  • msoFileDialogFolderPicker: questa opzione apre la finestra di dialogo o la finestra di fronte all'utente per selezionare la cartella.
  • msoFileDialogOpen: Ciò consentirà all'utente di aprire il file selezionato dalla cartella.
  • msoFileDialogSaveAs: Ciò consentirà all'utente di salvare il file come una copia diversa.

A partire da ora, ho selezionato l'opzione di msoFileDialogFilePicker.

Ora dobbiamo progettare la finestra di dialogo che appare di fronte a noi.

Usando l'istruzione With possiamo progettare la finestra di dialogo.

All'interno dell'istruzione con inserire un punto per visualizzare l'elenco IntelliSense delle proprietà e dei metodi dell'opzione FileDialog.

Per vedere solo i file excel quando si apre la finestra di dialogo del file, dobbiamo prima rimuovere uno dei filtri applicati.

Ora dobbiamo applicare un nuovo filtro come "File Excel" con estensione jolly dei file Excel.

Ora cambiamo il titolo della finestra di dialogo del file.

Possiamo consentire all'utente di selezionare un solo file alla volta oppure possiamo anche consentire loro di selezionare più file. Per questo, dobbiamo usare "Consenti selezione multipla".

Abbiamo due opzioni qui. Se è selezionato TRUE consentirà all'utente di selezionare più file se è FALSE l'utente può selezionare solo un file alla volta.

Un'altra cosa che possiamo progettare con FileDialog è che possiamo effettivamente insistere su quale dovrebbe essere la cartella predefinita quando viene visualizzata la finestra di dialogo del file. A tale scopo, utilizzare Nome file iniziale.

Per questo, dobbiamo menzionare il percorso dell'indirizzo della cartella predefinita da aprire.

Ora finalmente dobbiamo applicare il metodo "Mostra" per vedere la finestra di dialogo del file.

Codice:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "File Excel", "* .xlsx?", 1 .Title = "Scegli il tuo file Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ File Excel" .Mostra End With End Sub

Ora esegui il codice VBA per vedere il risultato.

Come possiamo vedere nella finestra di dialogo del file immagine sopra, la cartella menzionata ha aperto per impostazione predefinita.

Ora possiamo selezionare qualsiasi sottocartella e selezionare i file excel.

Guarda l'immagine sopra perché abbiamo applicato il parametro del filtro solo come "File Excel".

Questo selezionerà semplicemente il file dalla cartella menzionata. Per memorizzare il percorso completo dobbiamo dichiarare un'altra variabile come stringa.

Ora all'interno dell'istruzione with selezionare "SelectedItems". Assegna il percorso della cartella degli elementi selezionati alla variabile appena definita.

Ora finalmente mostra il percorso della cartella selezionata nella finestra del messaggio VBA.

Ora eseguirò il programma per vedere la finestra di dialogo.

Ora ho selezionato il nome del file come "1. Charts.xlsx "nella sottocartella" Charts ". Se clicco su OK, possiamo vedere il percorso completo della cartella nella finestra del messaggio.

Quindi, in questo modo, possiamo usare l'opzione FileDialog per selezionare i file dalla cartella in Excel. Usa il codice sottostante per selezionare i file.

Codice:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Scegli il tuo File Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: \ File Excel" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub