Per alcune macro potrebbe essere necessario determinare se esiste un modo per determinare la particolare macchina su cui sta operando la macro. Ad esempio, potresti avere un PC desktop che ha una directory particolare in D: \ OraNT \ Plus33, mentre il tuo PC notebook ha la directory in C: \ OraNT \ Plus33. La macro, ovviamente, deve rilevare quale macchina è in uso in modo che sappia quale directory utilizzare per la sua elaborazione.

Ci sono diversi modi in cui questo compito può essere affrontato. È possibile creare una macro di Excel che accede effettivamente all’API di Windows e determina il nome del computer su cui è in esecuzione. Tuttavia, un tale approccio può essere piuttosto complicato.

Un modo più semplice è utilizzare semplicemente il comando DIR di VBA per determinare dove esiste la directory desiderata. Il seguente farà il trucco:

Sub OracleQueries()

Dim sTemp As String     Dim sGoodPath As String

sGoodPath = "D:\OraNT\Plus33\"

sTemp = Dir("D:\OraNT\Plus33\nul")

If sTemp = "" Then         sGoodPath = "C:\OraNT\Plus33\"

sTemp = Dir("C:\OraNT\Plus33\nul")

End If

'Now have directory information     If sTemp <> "" Then         'Process queries using sGoodPath     Else         MsgBox "Directories not found!"

End If End Sub

Notare come la funzione DIR viene utilizzata in questo esempio. Normalmente DIR restituisce il nome del primo file che trova nella directory richiesta.

Se la directory è vuota, tuttavia, DIR restituisce una stringa vuota, anche se la directory esiste effettivamente. Poiché tutto ciò che vogliamo fare è scoprire se la directory esiste (non se ci sono file in essa), è necessario aggiungere le lettere “nul” alla fine del percorso della directory utilizzato da DIR.

Ciò fa sì che DIR restituisca una stringa vuota se la directory non si trova, oppure i caratteri “nul” se lo è (anche se la directory è vuota).

Verso la fine della macro, sTemp sarà vuoto se nessuna delle directory può essere localizzata. Se uno di essi è stato individuato, sTemp non sarà vuoto e sGoodPath verrà impostato sul nome della directory che può essere utilizzato in un’ulteriore elaborazione.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2607) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: