Mit VBA zu Visual Basic

Mit VBA zu Visual Basic

Jürgen Schubert


EUR 39,90

Format: 17 x 22 cm
Seitenanzahl: 538
ISBN: 978-3-99131-159-1
Erscheinungsdatum: 24.03.2022
„Mit VBA zu Visual Basic“ vermittelt die Grundlagen für die Programmierung von Windows-Anwendungen mit Hilfe von VBA als Ausgangspunkt. Mit vier voll durchprogrammierten Projekten sowie Videos dazu, führt Jürgen Schubert die Leser in die Programmierung ein.
Jürge Schubert

Mit VBA zu
Visual Basic

Ein Pracisbuch für
Programmiereinsteiger

Vorwort zu diesem Buch

Die Programmiersprache Visual Basic hat sich uber mehrere Jahrzehnte sukzessive zu einem der meistverwendeten „Werkzeuge“ zur Erstellung von Anwendungs-Programmen, die unter dem Betriebssystem Windows laufen, entwickelt. Das liegt u.a. daran, dass durch die grose Sprachnahe zur englischen Sprache und die gute (ich sage bewusst nicht leichte!) Erlernbarkeit schon viele Computer-Nutzer das Erfolgserlebnis „Programmieren“ fur sich erfahren konnten. Damit ist das Programmieren als Domane von Profis durchbrochen und breiteren Kreisen von Anwendern erschlossen worden. Trotzdem schrecken viele noch vor dem Programmieren zuruck, weil sie der Meinung sind, dass es theoretisch zu anspruchsvoll, zu langwierig und zu teuer sei. Den meisten ist nicht bekannt, dass sie mit MS-Office bereits ein komplettes Programmierwerkzeug, namlich VBA (Visual Basic fur Anwendungen), zur Verfugung haben. Sie mussen nur noch erfahren, wo es sich befindet und wie sie es einsetzen konnen.

Da VBA (nicht aber Visual Basic!) als Besonderheit uber ein spezielles Instrument, den Makro-Recorder, verfugt, der einem geradezu vorfuhrt, wie bestimmte Ablaufe programmiert werden konnen bzw. mussen, setzt das Buch an diesem Punkt an. Mit einer umfassenden Erlauterung und praktischen Ubungen zur Wirkungsweise der Makro-Recorder von VBA-Excel und VBA-Word werde ich Sie an die Programmierung heranfuhren.
Gleichsam aus der Excel-Praxis heraus werden Ihnen also die Grundlagen des Programmierens vermittelt, ohne dass Sie sich zuerst umfassend mit der oft recht „trockenen“ Theorie des Programmierens vertraut machen mussen.

Nach einigen einleitenden Kapiteln und Ubungen zu unverzichtbaren Grundlagen, fur die ich praxisgenutzte kleinere Beispiele verwende, behandle ich im weiteren Verlauf dieses Buches ein von einem Fachkrankenhaus mehrere Jahre erfolgreich genutztes groses VBA-Programm, das in VBA-Excel erstellt wurde. Das geschieht so, dass Sie Grundlagen des Programmierens dadurch erlernen, indem ich die einzelnen Schritte so ausfuhrlich erklare, dass Sie sie verstehen, durch praktische Ubung nachvollziehen und fur ahnliche Losungen wieder zur Anwendung bringen werden.
Im zweiten Teil des Buches wird das mit VBA Erlernte eingesetzt, um direkt mit Visual Basic professionell programmieren zu lernen und eigenstandige Windows-Anwendungen zu schaffen, die installiert werden konnen (setup.exe) und zwar VBA nicht mehr benotigen, aber aus sich heraus durchaus auch nutzen konnen. Dazu habe ich das VBA-Programm des Fachkrankenhauses neu mit Visual Basic programmiert und damit eine echte Windows-Anwendung geschaffen, die heute noch genutzt wird. Durch den Vergleich mit dem VBA-Programm, das fast genau die gleiche Funktionalitat hat, werden Sie das Programm in Visual Basic (im Folgenden kurz VB genannt) sehr gut verstehen lernen.

Wie oben gesagt, bekommt man VBA mit Microsoft Office quasi gratis. Aber woher bekommt man Visual Basic? VB ist seit 1997 in einem Microsoft-Produkt enthalten, das sich Visual Studio nennt. Das bekommt man allerdings nicht gratis.
Wenn das nicht so ware, konnte Microsoft seine Programmierwerkzeuge Visual Studio nicht verkaufen! Aber es sei bereits hier gesagt: Wenn Sie mit Hilfe dieses Buches erfolgreich programmieren gelernt und Freude an dieser sehr schopferischen Tatigkeit gefunden haben, werden Sie sehr wahrscheinlich eine Version von Visual Studio anschaffen. Aber bis dahin ist noch Zeit. Vorerst reicht VBA vollig aus, um das Programmieren erst einmal zu erlernen.
Um mit VB programmieren zu lernen, braucht man nicht unbedingt die neueste (teuerste!) Version. Die volle Funktionalitat ist auch in Vorganger-Versionen vorhanden. Z.B. Visual Studio 2015 bekommt man sehr preisgunstig. Eine Internet-Recherche lohnt dazu immer.

Naturlich geht das alles nicht ohne Theorie, wenn Sie uber einen bestimmten Anfangerstand hinausgelangen wollen. Die theoretische Untersetzung wird aber immer anhand des jeweils praktisch zu losenden Problems als Verallgemeinerung und damit als Grundlage fur hohere Erkenntnisse und Fertigkeiten vorgenommen.
Nur in einigen Fallen, in denen eine Erlauterung vonnoten ist, bevor ein praktisches Beispiel verstanden werden kann, wird etwas von diesem Prinzip abgewichen. Am Anfang dieses Buches mache ich Sie mit einigen geschichtlichen Ereignissen der Computerentwicklung und auch der Entwicklung der Programmiersprachen bekannt, ehe es wirklich an die praktischen Arbeiten geht. Lesen Sie diese bitte alle durch, auch, wenn Sie vielleicht etwas Geduld dazu brauchen. Aber ich gehe davon aus, dass Sie bisher damit noch nicht bekannt gemacht worden sind, und will Sie auf diesem Wege langsam an die Programmierarbeit heranfuhren.

Fur den Einstieg in das Erlebnis „Programmierung“ wunsche ich allen Anwendern dieses Buches viel Erfolg und Freude am Lernen, aber auch Durchhaltevermogen fur die „Durststrecken“. Ich werde versuchen, mit kleinen Anekdoten die ernste Arbeit des Programmieren-Lernens etwas aufzulockern und mit Vergleichen aus dem taglichen Leben schwierige Passagen einfach und verstandlich zu erklaren. Ich werde mich bemuhen, Sie immer wieder in Spannung zu versetzen.

Jurgen Schubert
im Mai 2021


Einleitung: Fur wen und wofur dieses Buch gut ist

Das Buch Mit VBA zu Visual Basic wendet sich an einen sehr breiten Leserkreis. Vor allem sind die vielen jungen Computerfreaks angesprochen, die schon viel vom Computer, seiner Hardware, den Anwendungsprogrammen (heute Apps), den Internet-Anwendungen und weiteren interessanten Teilgebieten verstehen, aber noch nicht wissen, wie sie erreichen konnen, dass der Computer das macht, was sie wollen.

Naturlich sind auch Leser angesprochen, die sich bereits theoretisch (z.B. im Studium) mit den Grundlagen des Phanomens „Computer„ befasst haben und das Programmieren auf rationelle Weise schnell erlernen wollen.

Wenn altere User schon einmal Kontakt mit hoheren Programmiersprachen, wie etwa Fortran, Algol, Pascal usw. hatten und den Schritt noch gehen wollen, sich mit den modernen Programmierwerkzeugen vertraut zu machen, werden sie anhand dieses Buches auf ihren eigenen Erfahrungen aufbauen konnen.

Alle haben mit dem Buch ein Mittel in der Hand, sich so zu weiterzubilden, dass sie zu den von der IT-Branche dringend benotigten Programmierern werden konnen, die mehrere Programmiersprachen beherrschen, indem sie nach dem Erfolg bei VB das Erlernen anderer Programmiersprachen angehen. Jeder andere Weg ist schwieriger. Das sei an dieser Stelle betont. Und damit ist ein weiterer Vorzug von VBA / VB ganz nebenbei genannt worden: VB ist auch der Einstieg in das Erlernen anderer Programmiersprachen! Diese sind ubrigens im Visual Studio auch zahlreich vorhanden, wie z.B. Visual C++ und weitere. Der Kauf von Visual Studio lohnt sich auch unter diesem Aspekt!

Sie als Anwender dieses Buches erfahren quasi nebenbei, wie Sie sich in die Lage versetzen konnen, mit dem Programmieren auch Geld zu verdienen. Wenn Sie noch Anfanger in der Programmierung sind, wird VBA / VB Mut geben, weiterzumachen, weil Sie merken, dass es gar kein Buch mit sieben Siegeln ist, mit professionellen „Werkzeugen„ wie VB professionelle Windows-Programme zu erzeugen.

Was zum Lesen dieses Buches notig ist?

- Naturlich ein gut arbeitender Computer mit einem Windows-Betriebssystem (ab Version 7 empfohlen)
- Die Anwendungsprogramme MS-Excel, MS-Word und spater das
Programmiersystem Visual Studio (ich arbeite hierbei mit Microsoft Office 2013
und Visual Studio 2017)
- Ausdauer und Durchhaltevermogen und
- ggf. eine Brille


Bei Excel und Word sollten es Versionen ab Office 2010 sein. Alles Weitere hangt nur noch von Ihnen ab!

Die Idee zu diesem Buch

In einer Bildungseinrichtung fur Erwachsene habe ich Mitte der 1990er Jahre die etwas undankbare Aufgabe ubernommen, einen ausgefallenen Kollegen im Fach „Kaufmannisches Rechnen“ zu vertreten. In der Vorbereitung darauf merkte ich, dass das grundlegende Studienmaterial und die dort dargelegten Methoden ziemlich antiquiert waren. (Die Kollegen dieses Fachbereichs mogen mir das bitte nicht als Uberheblichkeit der Computerleute auslegen!) Aber wer wendet heute noch, auch als moderner Kaufmann, die Rechentricks von vor 120 Jahren im Kopf und auf dem Papier an? Damit will ich nicht sagen, dass die Fahigkeit, gut im Kopf zu rechnen, etwas Schlechtes ware – im Gegenteil. Aber notwendig ist es nicht, denn inzwischen haben wir die Computer und ihre kleinen Bruder, die Laptops, Smartphones usw. Kurz und gut, aufgrund der Vorgaben wurden die ersten vier von funf Unterrichtstagen ziemliche Langweiler mit Wiederholung der Grundrechenarten usw. Logischerweise rief das bei den Teilnehmern Unmutsauserungen hervor, was mich veranlasste, mit Einverstandnis der Lehrgangsteilnehmer, die von Tabellenkalkulationsprogrammen noch wenig gehort haben, von den Vorgaben ,abzuweichen und den letzten Tag zu nutzen, um die Leistungsfahigkeit des MSRechenkunstlers Excel zu umreisen. Dass Excel es gewahrleistet, Zahlen- und Text-Tabellen zu erstellen, Summen und Differenzen zu bilden und weitere Berechnungen vorzunehmen, wussten fast alle.
Dass Tabellenformeln in die Excel-Zellen eingegeben werden konnen, die kompliziertere Berechnungen realisieren, wussten zwar einige, beherrschten es aber nicht. Dass aber mit und innerhalb von Excel mit VBA regelrecht programmiert werden kann, wusste niemand.
Eine der Teilnehmerinnen interessierte sich naher dafur und hinterfragte diese Moglichkeit. Wie sich spater herausstellte, war sie Mitarbeiterin in einem kleinen mittelstandischen Handwerksunternehmen und quasi fur die Buroarbeiten und damit auch fur die Rechnungslegungen verantwortlich. Einige Zeit spater erhielt ich die Anfrage, ob ich ein Programm in Excel erstellen konnte, das die notwendigen Buroarbeiten der Firma unterstutzt. Ich wusste von Anfang an, dass damit kein groses Geld zu verdienen ist, aber die Aufgabe, mit VBA-Excel eine spezifische kaufmannische Anwendung zu schaffen, reizte mich. Ich sagte zu. In der Folge entstand ein Programm, das seitdem erfolgreich genutzt wurde. Naturlich gab es „Geburtswehen“ und Fehler, aber diese hielten sich im Rahmen. Was aber das Wichtigste ist: Die Firma hatte eine „auf den Leib geschriebene Firmensoftware“ ohne Schnorkel und nutzlose Tools und konnte mitbestimmen, was das Programm konnen muss und wie es arbeiten soll.
In der weiteren Folge habe ich in Auswertung von Nachteilen dieses VBAProgramms, die es naturlich gibt, und mit der Absicht, dieses Buch zu schreiben, die VB-Variante noch mit VB 6.0 programmiert, die recht gut gelungen war. Aber das ist nun schon lange her. Deshalb habe ich in der jungeren Vergangenheit fur dieses Buch eine ahnliche Vorgehensweise gewahlt. Dazu habe ich das VBA-Programm „Patientenbefragung“ eines Fachkrankenhauses geschrieben und danach in VB neu programmiert. Es wird bis heute in der Praxis des FKH genutzt.

Das alles bietet eine Menge Material, Programmieren anhand praktischer Aufgaben lehren und lernen zu konnen, die viel wertvoller sind als kleine konstruierte Beispiele. Und so wollen wir es in diesem Buch bis zum Ende halten:

Praxis vor der Theorie, ohne letztere zu vernachlassigen.

Halten wir es wie in Goethes Faust, wo einem Schuler dasselbe Prinzip mit den Worten klar gemacht wurde:

„Grau, teurer Freund, ist alle Theorie
und grun des Lebens gold’ner Baum“

Beginnen wir also die Ersteigung des goldenen Baums der Programmier-Praxis!

Vorab noch etwas zur Methodik und zum Ziel dieses Buches

Der Untertitel sagte es bereits. Das Buch ist praxisorientiert. Das ist als neuer Ansatz gedacht, Interessenten anzureizen, das Programmieren zu erlernen. Dabei wird ausgenutzt, dass Sie als Computer-Nutzer (User) schon sehr viel praktische Erfahrung haben und nicht bei null anfangen. Diese, Ihre Praxiserfahrung, werde ich gezielt einsetzen, um Sie zu hoheren und noch unbekannten Erfahrungen und Erkenntnissen und damit zum Durchbrechen vorhandener Hemmschwellen zu bringen. Mit dem Erfolgserlebnis ES FUNKTIONIERT! wird erreicht, dass Sie auch die genauen Hintergrunde verstehen wollen und damit unterschwellig bereit gemacht werden, sich auch mit den manchmal schwerer zu verstehenden theoretischen Grundlagen zu befassen, ohne deren Verstandnis es letztendlich nicht geht. Noch einmal: Ich werde Sie nicht sofort mit den ziemlich umfangreichen theoretischen Grundlagen „zuschutten“, sondern praktische Aufgaben nutzen, um Sie mit den dafur erforderlichen theoretischen und syntaktischen Details bekannt zu machen. Wenn wir also fur die Losung der Aufgaben neue Steuerelemente oder neue Objekte einer bestimmten Art verwenden, werde ich genau diese erklaren. Auf artverwandte werde ich zwar an diesen Stellen hinweisen, diese aber nicht sofort in die Erklarungen einbeziehen. Nur bei den absolut wichtigen und unverzichtbaren Grundlagen hole ich etwas weiter aus.

Ich werde versuchen, alles ausfuhrlich und verstandlich zu erklaren. Sie konnen sicher sein, dass nichts unbehandelt bleibt, aber in einigen Fallen muss ich auf weiterfuhrende Literatur verweisen und setze dann den Hinweis so (L). Einiges konnen Sie auch im Glossar am Ende des Buches finden. Dazu setze ich den
Hinweis als G in Klammern (G). Erfolgt die Behandlung noch im laufenden Kapitel, wird die Textstelle ohne Zusatzzeichen nur unterstrichen. Besonders hohe Wichtigkeit und Teiluberschriften setze ich fett. Kritische und gefahrliche Sachverhalte wie auch Schwerpunkte sowie Kernsatze setze ich fett, unterstreiche sie und zentriere sie mittig. Es ist mir bisher keine komplette Anwendung (G) bekannt geworden, die in VBA erzeugt wurde. Es war auch nicht das Anliegen von VBA, grosere Programmeinheiten zu erzeugen. Meist handelt es sich um Makros (G) oder relativ kleine Probleme, die mit VBA gelost werden. In diesem Buch finden Sie aber drei komplette VBA-Anwendungen, namlich ein Programm in VBA-Excel zur Verfolgung und Erfassung einer privaten Geldanlage in einem Investmentfond als erstes Lehrbeispiel und einem groseren Programm in VBA-Excel, mit der die rationelle Erfassung von Daten, die Patienten in Fragebogen abgeben, im PC erfasst und nach Jahresfrist statistisch ausgewertet werden. Das Ergebnis liegt dann in Form von Tabellen und Diagrammen druckfahig vor.
Als kleineres Beispiel fur das Programmieren in VBA-Word stelle ich eine VBAAnwendung vor, die in einem sachsischen Regierungsprasidium bei der Umstellung von DM auf Euro im Jahr 2002 genutzt wurde.
Mit dieser VBA-Word-Programmierung will ich Gemeinsamkeiten und Unterschiede innerhalb VBA verdeutlichen.

Derartige Programme gibt es am Markt in zahlreichen Varianten,
hore ich Sie jetzt denken! Das stimmt, aber eben nicht in VBA. Nicht als gut verstandliches Programmierlehrbuch und schon gar nicht mit Offenlegung und detaillierter Erlauterung des gesamten Quelltextes, also des Programms selbst.
Es ist also von Vorteil, wenn Sie sich gut mit MS Excel und MS Word auskennen. Gleich hier noch der Hinweis, dass sich VBA-Excel besser zum Erlernen von VBA eignet als VBA-Word. Ich verwende also vorwiegend VBA-Excel.

Im zweiten Teil des Buches wird der Ubergang von VBA zu Visual Basic vollzogen.
Mit dem Kenntnisstand in VBA, den Sie bis dahin erworben haben, wird das gleiche Programm auf einer hoheren Stufe in Visual Basic erneut erarbeitet und durch Funktionen, die VBA nicht bieten kann, noch leistungsfahiger gemacht. Mit Hilfe von VBA wird also auch das Programmieren in VB erlernt, wie es im Buchtitel angekundigt wird. Naturlich losen wir uns in dieser Phase von Excel und VBA, denn ab hier erfolgt die Nutzung der VB-Entwicklungsumgebung, die in Visual Studio enthalten ist.

Das Ergebnis erscheint als perfektes, verkaufsfahiges Endprodukt, das mit seiner Setup.exe-Datei auf jedem Windows-Computer installiert werden kann.

Mit dem vollen Verstandnis dazu sind Sie an Ihrem Lernziel angekommen und haben das Rustzeug erworben, selbststandig erfolgreich weiter zu programmieren.


7.5.7 Schlusswort zum Programm „Investmentfond“

Einen moglichen kleinen Fehler habe ich bisher selbst ubersehen: Wenn bei der gegenwartigen Programmierung noch vor einer neuen Eingabe das neue Diagramm angefordert wird, wurde im Programmtitel das Datum 00:00:00 erscheinen. Das korrigieren wir mit der Prozedur frmHaupt.Activate, die automatisch ablauft, wenn das Formular aufgerufen wird. Wir setzen einfach zunachst das letzte Datum ein, das dann uberschrieben wird, wenn eine neue Eingabezeile gefullt wird. Klicken Sie in der IDE in die Formularflache. Das System bietet die Sub frmHaupt_Click() an. Aber wir brauchen frmHaupt_Activate. Gehen Sie nach oben und offnen Sie das rechte Kombinationsfeld. Klicken Sie Activate an und die Click-Prozedur wird durch Activate ersetzt.
Schreiben Sie darin:

'Letztes Datum einsetzen, wenn keine Eingabe erfolgt und Diagramm sofort ‘gerufen wird Datum = CDate(Sheets("Tabelle1").Cells(LBZ, 1))

Damit ist alles OK >>> Bitte testen Sie es.
Aber weil wir gerade dabei sind: Es gibt noch eine andere Moglichkeit, um das zu regeln, und dabei lernen Sie gleich noch eine interessante, oft genutzte Eigenschaft der Steuerelemente kennen, die Enabled-Eigenschaft.

Sie kennen aus verschiedenen Programmen, dass Buttons zeitweilig nicht bedient werden konnen. Sie sind dann ausgegraut und lassen sich nicht klicken, weil ihre Enabled-Eigenschaft den Wert FALSE hat. Das nutzen wir hier fur den Fall, dass ,noch kein neues Datum eingegeben wurde. Damit sind das alte Datum und das alte Diagramm noch gultig. Das wurde sich auch anzeigen lassen, aber ein neues Diagramm ware noch nicht erzeugt. Man muss also nur den Button auf Enabled = ,False (nicht zugelassen) setzen, solange das neue Datum noch nicht eingegeben wurde. Das kann in der Entwurfszeit im Eigenschaftenfenster des Buttons geschehen. Gehen Sie also in die IDE und klicken den Button [Neues Diagramm] an, um seine Eigenschaften bearbeiten zu konnen. Gehen Sie zur Eigenschaft Enabled und setzen Sie den Wert auf False. Das ist also eine Voreinstellung, die ich schon behandelt habe. Sie sehen sofort im Formular den ausgegrauten Button. (In der weiteren Folge nenne ich ein Steuerelement, das .Enabled = False ist >> abgeblendet. Bei .Enabled = True >> aufgeblendet.)
In der Prozedur zum Button cmdEin_Klick erganzen wir die Entscheidungszeile:

Wenn das Datum nicht Null ist, setzen Sie den Button [Neues Diagramm] wieder auf Enabled= True. Schreiben Sie dort unter der Zeile

Sheets("Tabelle1").Cells(LBZ + 1, 1) = Datum 'Spalte 1: die neue Zeile

If Datum <> 0 Then cmdDiagNeu.Enabled = True

Wenn Datum ungleich Null ist, dann setzen Sie den Button auf ERLAUBT (aufgeblendet).

Ach so <> den Vergleichsoperator habe ich noch nicht erwahnt, oder?

Es ist der Ungleich-Operator, den Sie sonst als vertikal durchgestrichenes Gleichheitszeichen ≠ kennen.

Um das zu testen, kommentieren Sie die Zeile in der Sub frmHaupt_Activate wieder aus.

Welche Losung Sie bevorzugen, ist Ihre Sache. Mir gefallt der abgeblendete Button besser.

Damit ist auch dieser nur optisch wirksame Fehler abgefangen. Die Listings fur die weiteren Prozeduren und die Modulkopfe des Projektes „Investmentfond“ finden Sie zusammengefasst im Anhang C als Listing 1.

Die gesamte Funktionalitat von ‚Investmentfond‘ konnen Sie im Video_T1_Vi12 sehen.

Speichern und schliesen Sie jetzt die Datei {Investmentfond.xlsm}.

Und nun ist das kleine praktische VBA-Programm ‚Investmentfond‘ tatsachlich abgeschlossen. Auf zu neuen Ufern. Jetzt geht es mit den erworbenen Programmierkenntnissen hinein in die neue, noch komplexere Praxis-Aufgabe ‚Patientenbefragung‘.

Das könnte ihnen auch gefallen :

Mit VBA zu Visual Basic

Bernhard Valta

Das 1x1 der Möbelantiquitäten

Buchbewertung:
*Pflichtfelder