Dieses Makro unterstützt uns beim Aktualisieren grosser Datenmengen
in HTML-Dateien, deren Ursprung eine Excel-Tabelle ist.
Das ist ein alltägliches Thema für Webadmins. Denn oft müssen
Mitgliedsdaten und Turnierergebnisse gepflegt werden, um nur ein
Beispiel zu nennen.
Viele bedienen sich dazu einer komplexen Software oder benutzen
die von Microsoft zur Verfügung gestellten Routinen. Der Nachteil
liegt oft in einem unübersichtlich gestalteten Quellcode, der zudem
auch noch mit vielen überflüssigen Befehlen überfrachtet und oft
nicht einmal W3C-konform ist.
Hier hilft uns ein einfacher "Print"-Befehl, eine komplette
HTML-Datei nach unseren Wünschen zu schreiben und diese mit den
aktuellen Daten für die Tabelle zu füllen.
Für die Head- und sonstigen statischen Daten müssen wir uns nur einmal
bemühen, während wir für das Auslesen der Tabellendaten eine geeignete
VBA-Routine, wie etwa eine oder mehrere Schleifen, brauchen.
Mit diesem Makro schreiben wir alle Daten hintereinander (sequentiell)
in eine HTML-Datei.
Der hier vorgestellte Code erzeugt eine komplette HTML-Datei mit Meta-Tags,
Back-Links usw. Wer das nicht benötigt, kann den Code problemlos anpassen.
Der "Open for Output"-Befehl öffnet einen Datenkanal zur besagten
HTML-Datei, wobei zu beachten ist, dass es sich beim Pfad um
ein real existierendes Verzeichnis handeln muss. Die Datei selber
wird jedoch neu erzeugt, wenn sie noch nicht vorhanden ist.
Gibt es sie bereits im angegebenen Verzeichnis, wird sie mit
jedem Durchlauf des Makros komplett neu überschrieben.
Dies ist nicht die einzige Möglichkeit, Daten in Dateien per VBA
zu behandeln, für unser Ziel ist sie jedoch genau richtig.
Zu beachten wäre hier noch, dass Sonderzeichen, wie z.B. Umlaute in
HTML konvertiert werden müssen. Ich mache das, indem ich die so
erzeugte Datei einmal in meinen HTML-Editor lade und dann erneut
abspeichere, wobei die Umwandlung der Zeichen automatisch geschieht.
Für die Anzeige mit neueren Browsern ist das gar nicht nötig, aber
es kann sein, dass ältere Programme nicht damit zurechtkommen und
ein unerwünschtes Ergebnis anzeigen; also: konvertieren nicht vergessen.
Die Anführungszeichen innerhalb des Printbefehls müssen doppelt notiert
werden, damit VBA diese auch richtig erkennt, denn sonst wird
das zweite Anführungszeichen als Ende des Print-Befehls interpretiert.
So sieht die erzeugte Datei im Browser aus.