Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 07-11-2014, 17.45.03   #67
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.208
Alexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raro
Cartelle di lavoro Nozioni di base



Quando si avvia Excel, viene creata di default una cartella di lavoro vuota e dopo aver eseguito le varie elaborazioni è possibile salvarla, oppure, se si dispone di una cartella di lavoro esistente da qualche parte nel computer è possibile aprirla come un documento di Excel. Nel linguaggio VBA, una cartella di lavoro è un oggetto che appartiene ad una collezione chiamata cartelle di lavoro e ogni cartella di lavoro è un oggetto di tipo Workbook.

Per quanto riguarda le collezioni, ogni cartella di lavoro può essere identificata utilizzando le sue proprietà e per fare riferimento a una cartella di lavoro in programmazione, si deve accedere alle sue proprietà usando l'indice della cartella o il nome della cartella di lavoro stessa. Dopo aver fatto riferimento a una cartella di lavoro, se si desidera eseguire un'azione, è necessario ottenere un riferimento dichiarando una variabile e assegnarle una chiamata che dovrebbe essere fatta nel modo seguente.
Codice:
Sub Prova1()
    Dim cart As Workbook
    Set cart = Workbooks.Item(2)
End Sub
Come già detto, una cartella di lavoro è un oggetto di tipo Workbook che per sostenere la possibilità di creare una nuova cartella, la raccolta cartelle di lavoro è dotata di un metodo denominato Add. La sua sintassi è.

Workbooks.Add(Template) As Workbook

Questo metodo richiede un solo argomento, ed è facoltativo, ciò significa che è possibile richiamare il metodo senza argomenti e senza parentesi, ecco un esempio.
Codice:
Sub Prova1 ()
     Workbooks.Add 
End Sub
Quando il metodo viene richiamato in questo modo, viene creata una nuova cartella di lavoro e per fare questo, si deve tenere presente che il metodo Add () restituisce un oggetto Cartella di lavoro, pertanto, quando si crea una cartella, si ottiene anche un riferimento ad essa. Si ottiene tutto ciò assegnando la chiamata al metodo per la creazione di una cartella di lavoro ad una variabile, ecco un esempio.
Codice:
Sub Prova1 ()
    Dim cart As Workbook
    Set cart = Workbooks.Add 
End Sub
Con questo codice è possibile quindi utilizzare la variabile per modificare le proprietà della cartella di lavoro. Dopo aver lavorato su una nuova cartella di lavoro, o dopo averla creata a livello di codice, se si desidera mantenere la cartella quando l'utente chiude Excel, è necessario salvarla e l'utente ha la possibilità di utilizzare la finestra di dialogo Salva. Quando l'utente avvia il salvataggio di un file, viene visualizzata la finestra di dialogo Salva con nome, che per default mostra il contenuto della cartella Documenti. Per scoprire quale sia la cartella di default, è possibile fare clic sul pulsante Opzioni di Excel e nella finestra di dialogo Opzioni di Excel, verificare il contenuto del file predefinito nella casella di testo Percorso.

Per modificare a livello di programmazione la cartella predefinita, la classe Application è dotato di una proprietà denominata DefaultFilePath, pertanto, per specificare a livello di codice la cartella predefinita, si deve assegnare una stringa alla proprietà Application.DefaultFilePath, ecco un esempio.
Codice:
Sub Prova1 ()
     Application.DefaultFilePath = "C: \Prova\gestione preventivi" 
End Sub
Quando questo codice viene eseguito, il file predefinito della finestra di dialogo Opzioni di Excel verrà cambiato. Per salvare visivamente una cartella di lavoro, è possibile fare clic sul pulsante Salva, oppure è anche possibile premere i tasti Ctrl + S, mentre se il documento è già stato salvato, l’operazione verrebbe eseguita senza nessun consenso da parte dell’utente. Per poter avere la possibilità di salvare una cartella di lavoro a livello di programmazione, la classe cartella di lavoro è dotata di un metodo denominato Save, la sua sintassi è.

Workbook.Save ()

Come si può vedere, questo metodo non richiede nessun argomento, se si clicca sul pulsante Salva o se si richiama il metodo Workbook.Save () su una cartella che non è stata ancora salvata, verrebbe richiesto di fornire un nome alla cartella di lavoro. Per salvare una cartella di lavoro in una posizione diversa, è possibile fare cliccare sul pulsante Salva con nome e selezionare una delle opzioni presentate, oppure è anche possibile premere F12. Come ausilio alla programmazione per il salvataggio di una cartella di lavoro, la classe cartella di lavoro è dotata di un metodo denominato Salva con nome. La sua sintassi è.

Workbook.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

Il primo argomento è l'unico richiesto e contiene il nome o il percorso del file, pertanto, è possibile fornire solo il nome del file con estensione quando si richiama. Ecco un esempio.
Codice:
Sub Prova1 () 
	Dim cart As Workbook    
    Set cart = Workbooks.Add cart.SaveAs "cart.xlsx" 
End Sub
Se si fornisce solo il nome di un file quando si richiama questo metodo, la nuova cartella di lavoro sarebbe salvata nella directory corrente o nella cartella Documenti, mentre se si desidera, un'alternativa si deve fornire il percorso completo del file.


Apertura di una cartella di lavoro
Excel è un'interfaccia a documenti multipli (MDI), ciò significa che è possibile aprire molte cartelle di lavoro allo stesso tempo, per questo motivo, la possibilità di aprire una cartella di lavoro a livello di programmazione è gestita dalla raccolta cartelle di lavoro e a sostegno di questo, la classe è dotata di un metodo denominato Open, la sua sintassi è.

Workbooks.Open( FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad )

FileName è l'unico argomento obbligatorio e quando si richiama questo metodo, è necessario fornire il nome del file o il suo percorso, ciò significa che è possibile fornire un nome di file con la sua estensione, ecco un esempio.
Codice:
Sub Prova1 ()
     Workbooks.Open "cart.xlsx" 
End Sub
Se si fornisce solo il nome del un file, Excel avrebbe cercato nella directory corrente o nella cartella Documenti, se invece Excel non è in grado di archiviare il file, come si può immaginare, si riceverà un errore, mentre una sicura alternativa è quella di fornire il percorso completo del file.


Chiusura cartelle di lavoro
Dopo aver usato una cartella di lavoro o per chiudere un documento non più necessario, la classe cartella di lavoro è dotata di un metodo denominato Close, la sua sintassi è.

Sub Close (Optional ByVal SaveChanges As Boolean, Optional ByVal Filename As String, Optional ByVal RouteWorkbook As Boolean)

Tutti e tre gli argomenti sono opzionali, il primo argomento indica se si desidera salvare le modifiche, se sono state fatte, da quando è stata aperta la cartella di lavoro. Se non è stato fatto nessun cambiamento dal momento in cui la cartella di lavoro è stata creata o dall'ultima volta che è stata aperta, questo argomento non viene considerato. Se il primo argomento è impostato su True e la cartella di lavoro ha delle modifiche che devono essere salvare, il secondo argomento specifica il nome del file in cui salvare la cartella di lavoro, mentre invece il terzo argomento specifica se la cartella di lavoro deve essere disponibile per l'utente successivo.


Accesso a una cartella di lavoro
Per accedere a una cartella di lavoro, la classe cartella di lavoro è dotata di un metodo denominato Activate e la sua sintassi è.

Workbook.Activate ()

Questo metodo non richiede alcun argomento, pertanto, per richiamarlo, è possibile ottenere un riferimento alla cartella di lavoro che si desidera accedere, quindi si deve richiamare il metodo Activate () in questo modo.
Codice:
Sub Prova1 () 
Dim cart As Workbook    
    Set cart = Workbooks.Item (2) cart.Activate
End Sub
È anche possibile usare meno codice applicando l'indice direttamente alla cartelle di lavoro. Ecco un esempio.
Codice:
Sub Prova1 ()
     Workbooks (2) .Activate 
End Sub
Visualizza Molte cartelle di lavoro
Se si crea o si aprono molte cartelle di lavoro, ognuna è rappresentata sulla barra delle applicazioni da un pulsante. Per fare riferimento a una cartella di lavoro, si deve accedere alle proprietà e passare l'indice o il nome del file della cartella di lavoro. Ecco un esempio:
Codice:
Sub Prova1 () 
    Workbooks.Item (2) 
End Sub
Dopo aver fatto riferimento a una cartella di lavoro, se si desidera eseguire un'azione, è necessario ottenere un riferimento e per fare questo, si deve dichiarare una variabile cartella di lavoro e assegnare la chiamata ad essa. Ciò dovrebbe essere fatto nel modo seguente:
Codice:
Sub Prova1 () 
Dim cart As Workbook    
    Set cart = Workbooks.Item (2) 
End Sub
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato