Makros werden häufig zum Schneiden, Würfeln und anderweitigen Verarbeiten von Informationen in Arbeitsmappen verwendet. Dies setzt natürlich voraus, dass die Arbeitsmappe, die die Informationen enthält, tatsächlich geöffnet ist. Ist dies nicht der Fall, muss Ihr Makro offensichtlich Code enthalten, um die erforderliche Arbeitsmappe tatsächlich zu öffnen.

Das Öffnen einer Arbeitsmappe kann ein Makro wirklich verlangsamen. Der Zugriff auf die Festplatte und das Laden der Datei dauert einige Zeit. Wenn Ihr Makro also prüfen kann, ob eine Arbeitsmappe geöffnet ist, bevor Sie versuchen, sie tatsächlich zu öffnen, können Sie Ihre Makros erheblich beschleunigen, wenn festgestellt wird, dass die Arbeitsmappe bereits geöffnet ist.

Eine sehr flexible Möglichkeit, sich der Aufgabe zu nähern, zu prüfen, ob eine Arbeitsmappe geöffnet ist, besteht darin, eine Funktion zu verwenden, die die Prüfung durchführt, und dann einfach einen TRUE- oder FALSE-Wert zurückzugeben, je nachdem, ob die Arbeitsmappe geöffnet ist. Das folgende kurze Makro führt diese kurze Aufgabe aus:

Function AlreadyOpen(sFname As String) As Boolean     Dim wkb As Workbook     On Error Resume Next     Set wkb = Workbooks(sFname)

AlreadyOpen = Not wkb Is Nothing     Set wkb = Nothing End Function

Um die Funktion zu verwenden, übergeben Sie ihr einfach den Namen der Arbeitsmappe, die Sie überprüfen möchten, auf folgende Weise:

sFilename = "MyFileName.xls"

sPath = "C:\MyFolder\MySubFolder\"

If AlreadyOpen(sFilename) Then         'Do not have to open     Else         Workbooks.Open sPath & sFilename     End If

_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 (3104) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: