Mit VBA zu Visual Basic

Mit VBA zu Visual Basic

Ein Praxisbuch für Programmiereinsteiger

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ürgen Schubert

Mit VBA zu
Visual Basic

Ein Praxisbuch für
Programmiereinsteiger

Vorwort zu diesem Buch

Die Programmiersprache Visual Basic hat sich über 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 große Sprachnähe zur englischen Sprache und die gute (ich sage bewusst nicht leichte!) Erlernbarkeit schon viele Computer-Nutzer das Erfolgserlebnis „Programmieren“ für sich erfahren konnten. Damit ist das Programmieren als Domäne von Profis durchbrochen und breiteren Kreisen von Anwendern erschlossen worden. Trotzdem schrecken viele noch vor dem Programmieren zurück, 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, nämlich VBA (Visual Basic fur Anwendungen), zur Verfügung haben. Sie müssen nur noch erfahren, wo es sich befindet und wie sie es einsetzen können.

Da VBA (nicht aber Visual Basic!) als Besonderheit über ein spezielles Instrument, den Makro-Recorder, verfügt, der einem geradezu vorführt, wie bestimmte Abläufe programmiert werden können bzw. müssen, setzt das Buch an diesem Punkt an. Mit einer umfassenden Erläuterung und praktischen Übungen zur Wirkungsweise der Makro-Recorder von VBA-Excel und VBA-Word werde ich Sie an die Programmierung heranführen.
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 müssen.

Nach einigen einleitenden Kapiteln und Übungen zu unverzichtbaren Grundlagen, für die ich praxisgenutzte kleinere Beispiele verwende, behandle ich im weiteren Verlauf dieses Buches ein von einem Fachkrankenhaus mehrere Jahre erfolgreich genutztes großes VBA-Programm, das in VBA-Excel erstellt wurde. Das geschieht so, dass Sie Grundlagen des Programmierens dadurch erlernen, indem ich die einzelnen Schritte so ausführlich erkläre, dass Sie sie verstehen, durch praktische Übungen nachvollziehen und für ähnliche Lösungen 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 eigenständige Windows-Anwendungen zu schaffen, die installiert werden können (setup.exe) und zwar VBA nicht mehr benötigen, aber aus sich heraus durchaus auch nutzen können. 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 Funktionalität 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, dass sich Visual Studio nennt. Das bekommt man allerdings nicht gratis.
Wenn das nicht so wäre, könnte 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 schöpferischen Tätigkeit gefunden haben, werden Sie sehr wahrscheinlich eine Version von Visual Studio anschaffen. Aber bis dahin ist noch Zeit. Vorerst reicht VBA völlig aus, um das Programmieren erst einmal zu erlernen.
Um mit VB programmieren zu lernen, braucht man nicht unbedingt die neueste (teuerste!) Version. Die volle Funktionalität ist auch in Vorgänger-Versionen vorhanden. Z.B. Visual Studio 2015 bekommt man sehr preisgünstig. Eine Internet-Recherche lohnt dazu immer.

Natürlich geht das alles nicht ohne Theorie, wenn Sie über einen bestimmten Anfängerstand hinausgelangen wollen. Die theoretische Untersetzung wird aber immer anhand des jeweils praktisch zu lösenden Problems als Verallgemeinerung und damit als Grundlage für höhere Erkenntnisse und Fertigkeiten vorgenommen.
Nur in einigen Fällen, in denen eine Erläuterung vonnöten 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 heranführen.

Für den Einstieg in das Erlebnis „Programmierung“ wünsche ich allen Anwendern dieses Buches viel Erfolg und Freude am Lernen, aber auch Durchhaltevermögen für die „Durststrecken“. Ich werde versuchen, mit kleinen Anekdoten die ernste Arbeit des Programmieren-Lernens etwas aufzulockern und mit Vergleichen aus dem täglichen Leben schwierige Passagen einfach und verständlich zu erklären. Ich werde mich bemühen, Sie immer wieder in Spannung zu versetzen.

Jürgen Schubert
im Mai 2021


Einleitung: Für wen und wofür 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 können, dass der Computer das macht, was sie wollen.

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

Wenn altere User schon einmal Kontakt mit höheren 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 können.

Alle haben mit dem Buch ein Mittel in der Hand, sich so zu weiterzubilden, dass sie zu den von der IT-Branche dringend benötigten Programmierern werden können, 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 übrigens 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 können, mit dem Programmieren auch Geld zu verdienen. Wenn Sie noch Anfänger 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 nötig ist?

- Natürlich ein gut arbeitender Computer mit einem Windows-Betriebssystem (ab Version 7 empfohlen)
- Die Anwendungsprogramme MS-Excel, MS-Word und später das
Programmiersystem Visual Studio (ich arbeite hierbei mit Microsoft Office 2013
und Visual Studio 2017)
- Ausdauer und Durchhaltevermögen 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 für Erwachsene habe ich Mitte der 1990er Jahre die etwas undankbare Aufgabe übernommen, einen ausgefallenen Kollegen im Fach „Kaufmännisches 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 mögen mir das bitte nicht als Überheblichkeit 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 Fähigkeit, 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 fünf Unterrichtstagen ziemliche Langweiler mit Wiederholung der Grundrechenarten usw. Logischerweise rief das bei den Teilnehmern Unmutsäußerungen hervor, was mich veranlasste, mit Einverständnis der Lehrgangsteilnehmer, die von Tabellenkalkulationsprogrammen noch wenig gehört haben, von den Vorgaben ,abzuweichen und den letzten Tag zu nutzen, um die Leistungsfähigkeit des MS Rechenkünstlers Excel zu umreisen. Dass Excel es gewährleistet, 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 können, 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 dafür und hinterfragte diese Möglichkeit. Wie sich später herausstellte, war sie Mitarbeiterin in einem kleinen mittelständischen Handwerksunternehmen und quasi für die Büroarbeiten und damit auch für die Rechnungslegungen verantwortlich. Einige Zeit später erhielt ich die Anfrage, ob ich ein Programm in Excel erstellen konnte, das die notwendigen Büroarbeiten der Firma unterstutzt. Ich wusste von Anfang an, dass damit kein großes Geld zu verdienen ist, aber die Aufgabe, mit VBA-Excel eine spezifische kaufmännische Anwendung zu schaffen, reizte mich. Ich sagte zu. In der Folge entstand ein Programm, das seitdem erfolgreich genutzt wurde. Natürlich 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 Schnörkel und nutzlose Tools und konnte mitbestimmen, was das Programm können muss und wie es arbeiten soll.
In der weiteren Folge habe ich in Auswertung von Nachteilen dieses VBAProgramms, die es natürlich 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 jüngeren Vergangenheit für dieses Buch eine ähnliche Vorgehensweise gewählt. 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 können, 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 vernachlässigen.

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 grün 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 höheren 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 Verständnis es letztendlich nicht geht. Noch einmal: Ich werde Sie nicht sofort mit den ziemlich umfangreichen theoretischen Grundlagen „zuschütten“, sondern praktische Aufgaben nutzen, um Sie mit den dafür erforderlichen theoretischen und syntaktischen Details bekannt zu machen. Wenn wir also für die Losung der Aufgaben neue Steuerelemente oder neue Objekte einer bestimmten Art verwenden, werde ich genau diese erklären. Auf artverwandte werde ich zwar an diesen Stellen hinweisen, diese aber nicht sofort in die Erklärungen einbeziehen. Nur bei den absolut wichtigen und unverzichtbaren Grundlagen hole ich etwas weiter aus.

Ich werde versuchen, alles ausführlich und verständlich zu erklären. Sie können sicher sein, dass nichts unbehandelt bleibt, aber in einigen Fällen muss ich auf weiterführende Literatur verweisen und setze dann den Hinweis so (L). Einiges können 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 Teil Überschriften setze ich fett. Kritische und gefährliche 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, größere Programmeinheiten zu erzeugen. Meist handelt es sich um Makros (G) oder relativ kleine Probleme, die mit VBA gelöst werden. In diesem Buch finden Sie aber drei komplette VBA-Anwendungen, nämlich ein Programm in VBA-Excel zur Verfolgung und Erfassung einer privaten Geldanlage in einem Investmentfond als erstes Lehrbeispiel und einem größeren 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 druckfähig vor.
Als kleineres Beispiel für das Programmieren in VBA-Word stelle ich eine VBA-Anwendung vor, die in einem sächsischen Regierungspräsidium 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,
höre ich Sie jetzt denken! Das stimmt, aber eben nicht in VBA. Nicht als gut verständliches Programmierlehrbuch und schon gar nicht mit Offenlegung und detaillierter Erläuterung 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 Übergang von VBA zu Visual Basic vollzogen.
Mit dem Kenntnisstand in VBA, den Sie bis dahin erworben haben, wird das gleiche Programm auf einer höheren Stufe in Visual Basic erneut erarbeitet und durch Funktionen, die VBA nicht bieten kann, noch leistungsfähiger gemacht. Mit Hilfe von VBA wird also auch das Programmieren in VB erlernt, wie es im Buchtitel angekündigt wird. Natürlich 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, verkaufsfähiges Endprodukt, das mit seiner Setup.exe-Datei auf jedem Windows-Computer installiert werden kann.

Mit dem vollen Verständnis dazu sind Sie an Ihrem Lernziel angekommen und haben das Rüstzeug erworben, selbstständig erfolgreich weiter zu programmieren.


7.5.7 Schlusswort zum Programm „Investmentfond“

Einen möglichen kleinen Fehler habe ich bisher selbst übersehen: Wenn bei der gegenwärtigen 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 zunächst das letzte Datum ein, das dann überschrieben wird, wenn eine neue Eingabezeile gefüllt 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 öffnen 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 Möglichkeit, 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 können. Sie sind dann ausgegraut und lassen sich nicht klicken, weil ihre Enabled-Eigenschaft den Wert FALSE hat. Das nutzen wir hier für den Fall, dass ,noch kein neues Datum eingegeben wurde. Damit sind das alte Datum und das alte Diagramm noch gültig. Das wurde sich auch anzeigen lassen, aber ein neues Diagramm wäre 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 können. 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 ergänzen 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 erwähnt, 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 für die weiteren Prozeduren und die Modulkopfe des Projektes „Investmentfond“ finden Sie zusammengefasst im Anhang C als Listing 1.

Die gesamte Funktionalität von ‚Investmentfond‘ können Sie im Video_T1_Vi12 sehen.

Speichern und schließen Sie jetzt die Datei {Investmentfond.xlsm}.

Und nun ist das kleine praktische VBA-Programm ‚Investmentfond‘ tatsächlich 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

Marco Müller

Salz – Das weiße Gold der Erde

Buchbewertung:
*Pflichtfelder