Se stai scrivendo macro che elaborano fogli di lavoro diversi in una cartella di lavoro, potresti aver bisogno di capire che tipo di fogli di lavoro ci sono nella cartella di lavoro, prima di eseguire qualsiasi elaborazione. Questo può essere particolarmente critico perché alcuni comandi VBA funzionano solo su determinati tipi di fogli di lavoro.

Prima di poter capire quali tipi di fogli di lavoro sono presenti in una cartella di lavoro, è utile sapere in che modo Excel archivia internamente alcuni degli oggetti che compongono la cartella di lavoro. Excel mantiene sia una raccolta di fogli di lavoro che una raccolta di grafici. La raccolta Fogli di lavoro è composta da oggetti foglio di lavoro e la raccolta Grafici è composta da oggetti foglio grafico.

Gli oggetti foglio grafico sono quei grafici che occupano un intero foglio di lavoro; non include quelli che sono oggetti incorporati in un foglio di lavoro.

È interessante notare che anche gli oggetti foglio di lavoro e foglio grafico sono membri della raccolta Fogli. Quindi, se desideri elaborare una cartella di lavoro nell’ordine in cui si trovano i fogli, è più semplice farlo passando attraverso la raccolta Fogli. Quando si esegue questa operazione, è possibile esaminare la proprietà Type dei singoli oggetti all’interno della raccolta per determinare di che tipo di oggetto si tratta. Excel definisce due tipi di oggetti che possono appartenere alla raccolta Fogli:

xlWorksheet. * Questo è un normale foglio di lavoro.

xlChart. * Questo è un grafico.

I seguenti due tipi di oggetti sono ancora supportati da Microsoft Excel, ma Microsoft consiglia di migrarli all’ultima versione di Microsoft VBA. (Vedere la pagina Web elencata di seguito per ulteriori informazioni sull’utilizzo delle macro di Excel 4.0.):

xlExcel4MacroSheet. * Questo è un foglio macro, come utilizzato in Excel 4.0.

xlExcel4IntlMacroSheet. * Questo è un foglio macro internazionale, come utilizzato in Excel 4.0.

https://support.office.com/en-us/article/Working-with-Excel-4-0-macros-BA8924D4-E157-4BB2-8D76-2C07FF02E0B8

Potresti essere tentato di pensare che guardare l’elenco dei tipi di fogli sia sufficiente. È interessante notare, tuttavia, che Excel non restituisce sempre ciò che ti aspetteresti per la proprietà Type. Invece, se esamini la proprietà Type per un grafico, restituisce un valore uguale a xlExcel4MacroSheet.

Ciò può causare problemi per qualsiasi macro.

Il modo per aggirare questo, quindi, è confrontare il nome di ogni elemento nella raccolta Fogli con quelli nella raccolta Grafici. Se il nome è in entrambe le raccolte, è lecito ritenere che il foglio sia un grafico. Se non è in entrambi, puoi analizzare ulteriormente per vedere se il foglio di lavoro è uno degli altri tipi. La seguente macro, SheetType, segue esattamente questo processo:

Sub SheetType()

Dim iCount As Integer     Dim iType As Integer     Dim sTemp As String     Dim oChart As Chart     Dim bFound As Boolean

sTemp = ""

For iCount = 1 To Sheets.Count         iType = Sheets(iCount).Type         sTemp = sTemp & Sheets(iCount).Name & " is a"



bFound = False         For Each oChart In Charts             If oChart.Name = Sheets(iCount).Name Then                 bFound = True             End If         Next oChart

If bFound Then             sTemp = sTemp & " chart sheet."

Else             Select Case iType                 Case xlWorksheet                     sTemp = sTemp & " worksheet."

Case xlChart                     sTemp = sTemp & " chart sheet."

Case xlExcel4MacroSheet                     sTemp = sTemp & "n Excel 4 macro sheet."

Case xlExcel4IntlMacroSheet                     sTemp = sTemp & "n Excel 4 international macro sheet"

Case Else                     sTemp = sTemp & "n unknown type of sheet."

End Select         End If         sTemp = sTemp & vbCrLf     Next iCount     MsgBox sTemp End Sub

Quando si esegue la macro, viene visualizzata una singola finestra di messaggio che mostra il nome di ogni foglio nella cartella di lavoro, insieme al tipo di foglio che è.

Infine, ricorda che questo codice ti dice quali tipi di fogli ci sono in una cartella di lavoro; non ti dice in che tipo di cartella di lavoro sono contenuti. (In altre parole, alla macro non interessa in quale versione di Excel stai lavorando)

_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 (10483) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: