Vba: controlla se la cartella di lavoro è aperta (con esempio)


È possibile utilizzare la seguente sintassi in VBA per verificare se una particolare cartella di lavoro è attualmente aperta.

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Quando viene eseguita questa macro, verrà visualizzata una casella di input in cui un utente può digitare il nome di una cartella di lavoro di Excel e la macro produrrà una finestra di messaggio con uno dei seguenti risultati:

  • “Il dossier è aperto”
  • “Il file non è aperto”

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come verificare se la cartella di lavoro è aperta utilizzando VBA

Supponiamo che attualmente abbiamo due cartelle di lavoro aperte con i seguenti nomi:

  • mia_cartelladilavoro1.xlsx
  • mia_cartelladilavoro2.xlsx

Supponiamo di voler verificare se la cartella di lavoro denominata my_workbook1.xlsx è attualmente aperta.

Per fare ciò possiamo creare la seguente macro:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Una volta eseguita questa macro, verrà visualizzata una casella in cui posso digitare my_workbook1.xlsx nella casella di input:

Dopo aver fatto clic su OK , la macro produrrà la seguente finestra di messaggio:

La macro visualizza correttamente “La cartella di lavoro è aperta” per indicare che una cartella di lavoro con quel nome è attualmente aperta.

Supponiamo ora di aver digitato il nome di una cartella di lavoro che non è attualmente aperta:

Dopo aver fatto clic su OK , la macro produrrà la seguente finestra di messaggio:

La macro visualizza correttamente “La cartella di lavoro non è aperta” per indicare che una cartella di lavoro con quello nome non è attualmente aperta.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come contare il numero di fogli in una cartella di lavoro
VBA: come inserire più colonne
VBA: come inserire più righe

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *