Wenn Sie Makros schreiben, die verschiedene Arbeitsblätter in einer Arbeitsmappe verarbeiten, müssen Sie möglicherweise vor der Verarbeitung herausfinden, welche Art von Arbeitsblättern in der Arbeitsmappe enthalten sind. Dies kann besonders kritisch sein, da einige VBA-Befehle nur für bestimmte Arten von Arbeitsblättern funktionieren.

Bevor Sie herausfinden können, welche Arten von Arbeitsblättern in einer Arbeitsmappe enthalten sind, ist es hilfreich zu wissen, wie Excel einige der Objekte, aus denen die Arbeitsmappe besteht, intern speichert. Excel verwaltet sowohl eine Arbeitsblattsammlung als auch eine Diagrammsammlung. Die Arbeitsblattsammlung besteht aus Arbeitsblattobjekten, und die Diagrammsammlung besteht aus Diagrammblattobjekten.

Diagrammblattobjekte sind Diagramme, die ein gesamtes Arbeitsblatt einnehmen. Objekte, die in ein Arbeitsblatt eingebettet sind, sind nicht enthalten.

Interessanterweise sind Arbeitsblatt- und Diagrammblattobjekte auch Mitglieder der Sheets-Sammlung. Wenn Sie also eine Arbeitsmappe in der Reihenfolge verarbeiten möchten, in der die Blätter erscheinen, können Sie dies am einfachsten tun, indem Sie die Blattsammlung durchlaufen. Wenn Sie dies tun, können Sie die Type-Eigenschaft einzelner Objekte in der Auflistung untersuchen, um festzustellen, um welchen Objekttyp es sich handelt. Excel definiert zwei Arten von Objekten, die zur Sheets-Auflistung gehören können:

xlWorksheet. * Dies ist ein reguläres Arbeitsblatt.

xlChart. * Dies ist ein Diagramm.

Die folgenden zwei Objekttypen werden weiterhin von Microsoft Excel unterstützt. Microsoft empfiehlt jedoch, sie auf die neueste Version von Microsoft VBA zu migrieren. (Weitere Informationen zum Arbeiten mit Excel 4.0-Makros finden Sie auf der unten aufgeführten Webseite.):

xlExcel4MacroSheet. * Dies ist ein Makroblatt, wie es in Excel 4.0 verwendet wird.

xlExcel4IntlMacroSheet. * Dies ist ein internationales Makroblatt, wie es in Excel 4.0 verwendet wird.

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

Sie könnten versucht sein zu glauben, dass es ausreicht, sich die Liste der Blatttypen anzusehen. Interessanterweise gibt Excel jedoch nicht immer das zurück, was Sie für die Type-Eigenschaft erwarten würden. Wenn Sie stattdessen die Type-Eigenschaft für ein Diagramm untersuchen, wird ein Wert zurückgegeben, der xlExcel4MacroSheet entspricht.

Dies kann Probleme für jedes Makro verursachen.

Um dies zu umgehen, müssen Sie den Namen jedes Elements in der Sheets-Sammlung mit denen in der Charts-Sammlung vergleichen. Wenn sich der Name in beiden Sammlungen befindet, kann davon ausgegangen werden, dass es sich bei dem Blatt um ein Diagramm handelt. Wenn dies nicht in beiden Fällen der Fall ist, können Sie weiter analysieren, um festzustellen, ob das Arbeitsblatt einer der anderen Typen ist. Das folgende Makro, SheetType, folgt genau diesem Prozess:

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

Wenn Sie das Makro ausführen, wird ein einzelnes Meldungsfeld angezeigt, in dem der Name jedes Blattes in Ihrer Arbeitsmappe sowie der Blatttyp angezeigt werden.

Denken Sie schließlich daran, dass dieser Code Ihnen sagt, welche Arten von Blättern in einer Arbeitsmappe enthalten sind. Es sagt Ihnen nicht, in welcher Art von Arbeitsmappe sie enthalten sind. (Mit anderen Worten, dem Makro ist es egal, in welcher Excel-Version Sie arbeiten.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (10483) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: