Ausgabe über Bildschirm oder Drucker

Druck in das Direktfenster | Ausgabe in eine Message-Box | Ausgabe mit Hilfe eines Bezeichnungsfeldes (Label)
Ausgabe in ein Textfeld (TextBox) | Ausgabe in ein Listenfeld (ListBox) | Werteanzeige mittels ScrollBar
Druckerausgabe | ... fast alles über Drucker

Druck in das Direktfenster

Das Direktfenster kann während der Testphase ständig geöffnet bleiben. Wenn das Arbeitsfenster so liegt, daß das Direktfenster nicht überdeckt wird, können die laufenden Ausgaben beobachtet werden.

Syntax: Debug.Print Ausdruck

zum Anfang

Ausgabe in eine Message-Box

Syntax:[Antwortvariable = ] MsgBox(prompt[, buttons] [, title] [, helpfile, context])

KonstanteWertBeschreibung
vbOKOnly
0
Nur die Schaltfläche OK anzeigen.
VbOKCancel
1
Schaltflächen OK und Abbrechen anzeigen.
VbAbortRetryIgnore
2
Schaltflächen Abbruch, Wiederholen und Ignorieren anzeigen.
VbYesNoCancel
3
Schaltflächen Ja, Nein und Abbrechen anzeigen.
VbYesNo
4
Schaltflächen Ja und Nein anzeigen.
VbRetryCancel
5
Schaltflächen Wiederholen und Abbrechen anzeigen.
VbCritical
16
Meldung mit Stop-Symbol anzeigen. 
VbQuestion
32
Meldung mit Fragezeichen-Symbol anzeigen.
VbExclamation
48
Meldung mit Ausrufezeichen-Symbol anzeigen.
VbInformation
64
Meldung mit Info-Symbol anzeigen.
VbDefaultButton1
0
Erste Schaltfläche ist Standardschaltfläche.
VbDefaultButton2
256
Zweite Schaltfläche ist Standardschaltfläche.
VbDefaultButton3
512
Dritte Schaltfläche ist Standardschaltfläche.
VbDefaultButton4
768
Vierte Schaltfläche ist Standardschaltfläche.
VbApplicationModal
0
An die Anwendung gebunden. Der Benutzer muß auf das Meldungsfeld reagieren, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann.
VbSystemModal
4096
An das System gebunden. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.

Die erste Gruppe von Werten (0 - 5) beschreibt die Anzahl und den Typ der im Dialogfeld angezeigten Schaltflächen. Die zweite Gruppe (16, 32, 48, 64) beschreibt die Symbolart. Die dritte Gruppe (0, 256, 512) legt die Standardschaltfläche fest. Die vierte Gruppe (0, 4096) legt fest, in welcher Form das Dialogfeld gebunden ist. Verwenden Sie beim Addieren der Zahlen zu einem Gesamtwert für das Argument buttons nur eine Zahl aus jeder Gruppe.

 
Konstante
Wert
Beschreibung
vbOK
1
OK
vbCancel
2
Abbrechen
vbAbort
3
Abbruch
vbRetry
4
Wiederholen
vbIgnore
5
Ignorieren
vbYes
6
Ja
vbNo
7
Nein
zum Anfang

Ausgabe mit Hilfe eines Bezeichnungsfeldes (Label)

Syntax: UserForm1.Label2.Caption = Ausdruck

Ein Label kann nur eine "Aufschrift" besitzen, deshalb muß immer der ganze anzuzeigende Text zugewiesen werden. Bei Werteausgaben mit Bezeichnung muß man entweder der Bezeichnung, die immer wieder erscheinen soll, ein eigenes Label geben oder alternativ so vorgehen:

vor der Berechnung:
Form1.Label.Caption = "Gesamtpreis incl. MWSt = "

nach der Berechnung:
Form1.Label.Caption = Form1.Label.Caption & Format$(Preis, "####,## DM")

zum Anfang

Ausgabe in ein Textfeld (TextBox)

Syntax: UserForm1.text1.text = Ausdruck

Das Textfeld kann immer nur einen Text enthalten. Deshalb muß der Text genauso aufbereitet werden, wie es oben beim Bezeichnungsfeld gezeigt ist. Wenn etwa das Ergebnis einer Rechenschleife angezeigt werden sollte, das zeilenweise anzuzeigen wäre, sähe das so aus:

Form1.Text1.Text = "Ergebnis meiner Berechnung: " & vbCrLf
For i = 1 to 100
Berechne i,Wert 'eine fiktive Funktion!
Form1.Text1.Text = Form1.Text1.Text & i & " " & Wert & vbCrLf
next

Das Textfeld kann auch für die Ausgabe längerer Texte benutzt werden. Dazu muß im Eigenschaftenfenster die Eigenschaft "MultiLine = true" gesetzt werden.
Wenn diese Eigenschaft gilt, dann kann das Textfeld auch mit horizontalen und/oder vertikalen Scrollbalken versehen werden (Eigenschaft "Scrollbars"). Daß es nicht mehr beschrieben werden kann, erreicht man mit "Locked = True".

Wenn der Text sehr lang wird, wenn er nämlich mehr als ca 65535 Zeichen enthält (Integer-Zählung) dann streikt das Textfeld. Weg mit ihm!

Es gibt einen Ausweg, das sog. Rtf-Textfeld, welches mehr als 2 Milliarden Zeichen darstellen kann, allerdings eigens geladen werden muß.
Dazu im Menü <Projekt>, <Komponenten...>, <Steuerelemente> wählen und dann "Microsoft Rich Textbox Control ..." anklicken und übernehmen. Man wechselt im Formular die Textbox gegen die Rtf-Box, nennt letztere so (Eigenschaft Name!), wie vorher die Textbox hieß, setzt die erforderlichen Attribute, fertig!

Noch zwei Anmerkungen zum Schluß:
1. Die beiden Textfeldtypen verhalten sich etwas unterschiedlich.
2. Wenn man einen langen Text, wie oben angegeben, stückchenweise erzeugt und ausgibt, verlangsamt sich die Ausgabe mit jeder hinzukommenden Zeile. Besser ist dann, einen String zusammenzuaddieren, der erst nach Abschluß der Berechnung angezeigt wird.

zum Anfang

Ausgabe in ein Listenfeld (ListBox)

Syntax: UserForm1.List1.Additem Ausdruck

Das Listenfeld ist dazu bestimmt, Listen, also viele Einträge zu zeigen. Es kommt immer dann in Frage, wenn etwa das Ergebnis von Bearbeitungsschleifen dokumentiert werden soll. Es ist so voreingestellt, daß es automatisch Scrollbalken anlegt, wenn die Zahl der Einträge größer wird, als es der vorgesehene Platz zuläßt.
Auf die weiteren "Fähigkeiten" des Listenfeldes soll hier nur kurz hingewiesen werden. Dazu gehört insbesondere der Zugriff auf die Einträge mittels Mausklick.

zum Anfang

Werteanzeige mittels ScrollBar

Eine analoge Werteanzeige, die eine Ziffernausgabe ergänzen kann, läßt sich mit ScrollBars verwirklichen. ScrollBars sind an sich für Eingaben gedacht (vgl. Eingaben mit ScrollBars) sie können aber qualitative Verläufe berechneter Werte gut darstellen. Man weist einfach dem Value den anzuzeigenden Zahlenwert zu. Dabei sind die Grenzen geeignet einzustellen, ggf. der Anzeigewert zuvor anzupassen.
zum Anfang

Druckerausgabe

Textausgaben können über das Printer-Objekt direkt an den Drucker erfolgen. Zur Druckereinstellung oder zum Start des Druckvorganges einer Grafik oder eines kompletten Dokuments nutzt man am besten einen Standarddialog. (Vgl. Standarddialoge: Drucken). Die Druckbefehle sind Methoden des Printer-Objekts. Über Einzelheiten sehe man in der Hilfe nach. Einfache Textausgaben erfolgen wie auf dem Debug-Fenster.
Code-Beispiel:

Printer.Print "Dies ist die erste Zeile"'Druck mit Zeilenumbruch
Printer.Print'ergibt eine Leerzeile
Printer.Print "Dies ist die dritte "'Druck ohne Zeilenumbruch
Printer.Print " Zeile"'Zeile 3 wird fertig gedruckt
Printer.EndDoc'Dokumentenende, sofortiger Druck

Grafikausgaben sind je nach Art der Grafik unterschiedlich zu behandeln.
1. Für Grafiken, die erst im Programm erzeugt ("gemalt") werden, gilt: Alle Grafikmethoden, die auf einem Formular oder einer PictureBox zum Aufbau einer Grafik ausgeführt werden, können auch auf das Printerobjekt angewandt werden. Siehe ein Beispiel dazu.
2. Geladene Bilddateien, etwa zur Verschönerung der Formulare, können ausgedruckt werden, indem man die Methode "PaintPicture" auf dem Printer-Objekt aufruft. Ein Aufruf zum Druck eines Bildes, das der Picture-Eigenschaft der PictureBox namens Picture1 auf dem Formular namens Form1 zugewiesen ist (alles klar?) könnte lauten:

Printer.PaintPicture Form1.Picture1.Picture, 10, 10
Printer.EndDoc
'Dokument drucken

Die zweimal 10 sind hier Beispielkoordinaten für die linke obere Ecke auf dem Papier. PaintPicture läßt weitere, meist entbehrliche Parameter zu.
3. Schließlich gibt es noch eine berühmte Methode "Form1.PrintForm", die entweder vom Drucker nicht ausgeführt wird, oder keine guten Resultate liefert.

zum Anfang

(Fast) alles über den Drucker

Es ist sicher günstig, noch ausstehende Druckerbefehle wenigstens aufzulisten.

Eigenschaftsnamemögliche WerteErläuterung
Copies Exemplarzahl
CurrentX
CurrentY
 Positioniert folgende Ausgabe
DrawMode
DrawStyle
DrawWidth
1..16
0..6
1,2,..
wie bei Picture-Ausgaben
DriverName Druckername
FillColor
FillStyle
Farbwert
0..7
wie bei Picture-Ausgaben
Font,
FontSize,
...
 Schrift, diverse Schrifteigenschaften
hDCvon Windows vergebenHandle-Nummer
Height
Width
durch Scale-Methode skaliertAbmessungen des bedruckbaren Bereiches
Orientation0 hoch, 1 querBildlage Hoch- oder querformatig
ScaleMode0..10wie bie Picture-Ausgaben
ScaleHeight
ScaleWidth
 Grenzen des
ScaleTop
ScaleLeft
 Koordinaten der linken oberen Ecke des Papiers
TwipsPerPixelX
TwipsPerPixelY
 Anzahl der Twips pro Pixel horizontal und vertikal
zum Anfang

© R. Hirte * 2001/2004