Formatieren von tabellarischen Ausgaben mit wiederverwendbaren Prozeduren
Viele VBA-Programme geben tabellarische Darstellungen auf Arbeitsblätter aus. Es soll hier gezeigt werden, wie man solche Tabellenausgaben mit wiederverwendbaren Prozeduren formatieren kann.
Das folgende Bild zeigt eine kleine Tabelle, welche formatiert werden soll:

Die Formatierung erfolgt durch eine Prozedur, welcher der Tabellenbereich, in dem sich die Daten befinden, als Parameter übergeben wird. Innerhalb der Prozedur werden dann die Formatierungsmerkmale direkt in diesen Bereich eingefügt.
Public Sub formatTable03(ByVal r As Range)
Dim h As Range 'header
Dim b As Range 'bottom line
Set h = r.Rows(1).Cells
Set b = r.Rows(r.Rows.Count)
With r
.Borders(xlInsideVertical).LineStyle = xlDash
.Borders(xlInsideHorizontal).LineStyle = xlDash
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End With
h.Borders(xlEdgeTop).LineStyle = xlContinuous
h.Borders(xlEdgeTop).Weight = xlThin
h.Borders(xlEdgeBottom).LineStyle = xlContinuous
h.Borders(xlEdgeBottom).Weight = xlMedium
b.Borders(xlEdgeBottom).LineStyle = xlContinuous
b.Borders(xlEdgeBottom).Weight = xlMedium
End Sub
Die Prozedur kann z.B. aus einem Formularmodul aufgerufen werden. Wir betrachten hierzu ein kleines Beispiel. Das kleine Formular im folgenden Bild besitzt ein RefEdit-Steuerelement zum Einlesen des zu formatierenden Bereichs. Der Benutzer muss hierzu nur die Bereich (im Bild links) markieren. Anschließend drückt er die Schaltfläche <Formatieren>.

Der Rumpf der Ereignisprozedur für die Schaltfläche besteht nur aus einer Zeile. Da sich die Formatierungsprozedur formatTable03 in einem Modul namens GR befindet, wird diese Bezeichnung dem Aufruf vorangestellt.
Private Sub FormatBtn_Click()
GR.formatTable03 Application.Range(Me.FormatRefEd.Text)
End Sub
Das nächste Bild zeigt die formatierte Tabelle.
