Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

Kapitel 17: So greifen Sie mit VBA auf d... > 17.6 So drucken Sie Module aus - Pg. 373

So führen Sie einen Makrocheck durch 17.5 So führen Sie einen Makrocheck durch Bevor ein Makro gelöscht bzw. auf ein Makro in irgendeiner Form zugegriffen wird, kann vorab eine Prüfung erfolgen, ob das entsprechende Makro überhaupt in der Arbeitsmappe existiert. Dazu können Sie eine Funktion schreiben, die so aus- sehen könnte wie in Listing 17.7 dargestellt. Listing 17.7: Befindet sich ein Makro in der Mappe? Function MakroDa(MakroName As String, ModulName As String) As Boolean On Error Resume Next If ModulDa(ModulName) = True Then MakroDa = ThisWorkbook.VBProject.VBComponents(ModulName)__ .CodeModule.ProcStartLine(MakroName, vbext_pk_Proc) <> 0 End If End Function Sub MakroCheck() If MakroDa("TabellenCheck", "Modul1") = True Then MsgBox "Makro existiert!", vbInformation Else MsgBox "Makro existiert nicht!", vbCritical End If End Sub 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Übergeben Sie der Funktion MakroDa den Namen des Makros sowie den Namen des Moduls, in dem das Makro gespeichert ist. Über die Eigenschaft ProcStartLine wird dann in der Funktion versucht, das Makro zu finden. Ist die Suche erfolg- reich, dann wird eine Länge ungleich null zurückgegeben. 17.6 So drucken Sie Module aus Das Drucken von Modulen ist standardmäßig über das Menü D ATEI und den Befehl D RUCKEN möglich. Dabei besteht aber keine Möglichkeit, das Aussehen des Aus- drucks sowie die Formatierung der Schriftart speziell für den Druck vorzunehmen. Die Lösung für dieses Problem aus Listing 17.8 besteht darin, zuerst das komplette Modul in eine Textdatei zu schreiben, diese Textdatei dann in Excel zu öffnen und zu formatieren. Nach dem Ausdruck dieser Datei erfolgt die Löschung derselben. Listing 17.8: Modul formatiert ausdrucken Sub ModulDrucken() ThisWorkbook.VBProject.VBComponents("Modul1").Export _ "C:\Eigene Dateien\Codes.txt" Workbooks.OpenText "C:\Eigene Dateien\Codes.txt" With ActiveWorkbook.ActiveSheet.Cells .Font.Name = "Courier" .Font.Size = 8 .PrintOut End With 373