Seite 1 von 1

Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 28. Jun 2018, 20:03
von Ruba_1966
Guten Tag geschätztes Forum

Seit Jahren bastle ich an VBA-Programmen mit Erfolg zwar, aber mir fehlen einfach die Grundlagen.

Wie habt ihr euch euer Wissen erlangt?
Welche Strategien habt ihr dazu verwendet?

Ich habe zwar Bücher gelesen, Foren durchforstet, Youtube-Videos verschlungen, aber ...
... irgendwie raffe ich die grundlegenden Strukturen nicht, wenn ich vor neuen Lösungsfindungen stehe.



2 Beispiele:

1. Ich wollte wissen, wie Excel abfragen kann, ob die Seitenumbrüche schon berechnet wurden.
Falls nicht, sollte er sie berechnen und anzeigen. Und das bei jedem Öffnen einer spezifischen Arbeitsmappe.
Dank eurer Foren konnte ich zwar das Problem lösen, aber es wäre befriedigender gewesen, wenn ich aus der logischen Struktur
von VBA heraus auf die Lösung gekommen wäre.
Das war mir aber unmöglich.

2. Ich wollte wissen, wie ich mehrere graphische Objekte als Range angeben kann, die ich dann über eine definierte Variable
per VBA markieren kann.
Auch hier habe ich noch keine Lösung gefunden.
Ich habe einfach das Makro aufgenommen und die jeweiligen Objekte (mit Namen versehen) markiert.
Diese Sequenz habe ich dann in das bestehende VBA-Projekt implementiert.


Ich hoffe, dass aus meinen (ja, ein bisschen frustrierten) Schilderungen die Grundproblematik herauszulesen ist und wäre euch dankbar, wenn ihr mich in dieser Hinsicht aufmuntern könntet.

Herzlichen Dank euch allen und grosses Kompliment für dieses hilfreiche Forum!

Ruba

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 29. Jun 2018, 10:57
von KeGe
Hallo Ruba,

Du stehst vor dem gleichen Problem wie ich.
Ich habe vor ein paar Jahren VBA als Quereinsteiger und Autodidakt angefangen - mit Null Vorkenntnis in Programmierung.
Mein einziger Vorteil war (und ist), dass ich halbwegs computeraffin bin.

Ich habe mir die Kenntnisse, die ich heute habe, sukzessive angeeignet und zusammengesucht- genau wie Du: mit Hilfe dieses Forums, fremder Makros oder Bestandteile, durch probieren.
Das ist frustrierend.
Ich beschaftige mich nahezu ausschließlich mit WORD VBA und lerne noch ständig dazu. Heute finde ich in meinen alten "Werken" Dinge, die ich heute anders lösen würde. Und in dem, was ich heute baue, werde ich vermutlich in der Zukunft viele Verbesserungsmöglichkeiten finden.

Mir fehlen, genau wie Dir, die Grundlagen, und zwar komplett. Das fällt einem immer wieder auf die Füße.
In diesem Sinne würde ich mich Deiner Frage gerne anschließen.

Vielleicht kann mir ja auch jemand ein spezielles Anfängerwerk für VBA WORD empfehlen? Mit WORD scheint es ja deutlich ungebräuchlicher zu sein als mit EXCEL, das kommt bei mir noch dazu.
Dazu kommt der Zeitdruck, wenn etwas erstellt werden muss, diese Zeit fehlt mir dann für ein evtl. Grundlagenstudium.

Du bist jedenfalls nicht alleine!
Viele Grüße, Kerstin

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 29. Jun 2018, 12:47
von DerHoepp
Hallo von mir,

die beste Schule ist die Übung. Mir selbst hat es am meisten geholfen, hier im Forum Lösungen für anderer Leute Probleme zu erstellen. Das schult in der Problemlösungskompetenz, im Erdenken von Algorithmen und natürlich im Umgang mit dem Objektmodell von Excel/Word. Und daher ist es auch recht egal, ob es um Word oder Excel geht. Problemlösungsstrategien sind der erste Schritt. Das verwendete Objektmodell eher zweitrangig.

Die wichtigsten Grundkenntnisse sind meines Erachtens (Ich geh mal davon aus, dass If-Then-Else genau wie einfache Schleifen bekannt sind):
-> Die F1-Taste und das Lesen und Verstehen der Online-Hilfe
-> Datentypen und ihre Konvertierung untereinander (Hierbei hilft es meiner Ansicht nach, mit Option-Explicit zu arbeiten, um gezwungen zu sein, sich gedanken zu machen)
-> Das Wissen, das ein Datum und eine Uhrzeit nur Zahlen sind
-> Der Umgang mit Lokalfenster, Direktfenster und Einzelschrittmodus
-> Die F2-Taste um den Objektkatalog durchzuarbeiten
-> Das Erkennen und Vermeiden von "Hilfsobjekten" wie Selection oder ActiveDocument/ActiveSheet
-> Das Erkennen mathematischer Zusammenhänge in Problemen
-> Die Fähigkeit, komplexere "Einzeiler" in ihre Einzelteile /-objekte zu zerlegen um zu sehen, was passiert
-> Das Wissen über Subs und Functions
-> Das Wissen darüber, dass es selten sinnvoll ist, eingebaute Funktionen nachzubauen (vor allem mit unnötigen UserForms in Excel), weil
-->es professioneller aussieht
-->die eigenen User unterschätzt werden
-->es bunt ist
-->die Grundfunktionen in Excel nicht bekannt sind
-> Arrays

Viele Grüße
derHöpp

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 05. Jul 2018, 08:41
von KeGe
Tja, da fehlen mir bestimmt zwei Drittel von... :(

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 05. Jul 2018, 22:38
von theoS
Mein Senf dazu:
Du kannst dir die wichtigen Bestandteile des Editors anzeigen lassen? (siehe Höpps Antwort)
Du weißt was eine Variable ist, kannst sie deklarieren und ihr einen Datentyp zuweisen?
Du kennst den Unterschied zwischen den gebräuchlichen Datentypen? (kannst eine String von einer Long Variablen unterscheiden?)
Du kennst If-Then-Else?
Du kennst die For-Next-Schleifen?
Du kannst was anfangen mit Sub und Function?
OK.
Dann hast du die Grundlagen von VBA schon mal.
Wenn nicht, schau mal ins VBA-Tutorial. ( https://vba-tutorial.de/ )

Alles andere ist Problemlösung.

Dass das Objektmodell für den Anfänger keine grosse Bewandtnis hat, dem kann ich nicht so zustimmen.
Grade wenn man mit Word programmiert, wird man irgendwann nicht an dem Ding vorbeikommen.
Z.B. die Frage nach den Grafiken. Wie hängen die im Dokument (oder der Mappe/Blatt) rum?
Das sind Dinge, die kann man auch im Editor anschauen.
Viele Dinge zeigt der allerdings erst, wenn man sie in eine Variable lädt - und die vielen "Plusse" mal anklickt und neugierig ist.

Eines ist ganz wichtig: Sich nicht frustrieren lassen. Programmieren ist auch ganz viel logisches Überlegen. Grosse Aufgaben in kleine zerlegen, Strukturen erkennen.
Das Objektmodell von Word ganz zu verstehen? Oje. Das hiesse, man versteht als Mann eine Frau ganz. :shock:
Aber vieles kann man sich draus erschließen, es alleine im Lokalfenster zu beobachten.

Noch eines.
Es gibt auch hier drin Programmierer, die können mit einer Zeile Code das machen, wozu andere 20 Zeilen brauchen. Zauberer.
Davon sollte man sich nicht entmutigen lassen.
Mir ist eine Lösung, die ich aus einem aufgezeichneten Code entwickelt habe und die ich verstanden habe, tausend mal lieber als eine die zwar das gleiche tut (wenn sie das denn tut), aber die ich nicht durchschaue.
(nichtsdestotrotz sollte man das versuchen. So was zu verstehen. Aber, das ist ja nicht unbedingt das, was man am Anfang tun muss)

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 06. Jul 2018, 06:31
von KeGe
Danke für den Link, Theo!
Den nehme ich mir vor, sobald ich es zeitlich reinbekommen.

Du hast Recht, lieber mache ich etwas umständlich, aber habe es verstanden.

Viele Grüße, und schönes Wochenende
von Kerstin

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 06. Jul 2018, 10:30
von DerHoepp
Hallo Theo,

dass das Objektmodell erstmal unwichtig ist, hatte ich nur darauf bezogen, dass dieses für das Erlernen von VBA nicht relevant ist. Wenn es darum geht, zu lernen, ein bestimmtes Objekt in Word per VBA zu beeinflussen, dann gebe ich dir natürlich recht. Wenn ich allerdings grundsätzlich verstanden habe, dass ich Eigenschaften von Objekten mit meiner Grundkenntnis über (primitive) Datentypen Werte zuordnen kann, und dass ich Methoden eines Objekts wie eine Function/Sub verwenden kann und diesen wiederum Parameter übergebe, ist das unabhängig vom konkreten Problem. Ich muss dann nur noch wissen, welches Objekt ich verändern sollte, um das konkrete Problem zu lösen.
Anders gesprochen: Wer VBA und seine Objektorientierung grundsätzlich beherrscht, in der Lage ist die Online-Hilfe und die Objektbibliothek zu lesen, für den/die ist es egal, in welchem Office-Produkt er/sie VBA "gelernt hat". Die Nutzung für Excel, Access, Outlook, Word und Powerpoint ist gleich. Es müssen halt Grundkenntnisse in der "normalen" Handhabung der jeweiligen Application vorhanden sein, um sich in das Objektmodell reinfinden zu können.

Viele Grüße
derHöpp

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 13. Jul 2018, 16:57
von snb
Ich bin mal angefangen mit:

Guy Hart-Davis: Word97 Macro & VBA Handbook ISBN 0-7821-1962-X

Das ist sehr humorvoll und didaktisch geschrieben und enthällt sehr viele Aspekte in Words VBA und VBA (manchmal suche ich noch etwas und bin erstaunt, dass ich es dort finde weil ich es vergessen war.) Ich hab's gelesen von Seite 1 bis letzte Seite.

Das 2e Buch das ich studiert hab war:

Green, Bullen, Bovey & Alexander Excel 2007 VBA; ISBN 978-0-470-04643-2

Die Beschreibun ist gut, die Beispiele sind nich richtig 'concise'.
Wenn ich es las, korrigierte ich im Kopf ihre VBA-codes: 'das könnte einfacher geschrieben werden'

Hilfreicht ist die Code Beispiele im Buch nach zu bauen, zu testen und zu variieren.

Wenn man sich mit den Basis gut auskennt, lernt man später viel schneller.

Die erfolgreichste Weise war für mich das schreiben bestimmter Themen für meine Website.
Wenn du jemand anders etwas erklären musst, musst du selbst das ganze vòllig beherrschen.

Re: Grundsätzliches zum Erlernen von VBA

BeitragVerfasst: 26. Jul 2018, 10:11
von Ruba_1966
Ganz herzlichen Dank für all eure engagierten Antworten.

Das hat mir sehr geholfen, insofern, dass ich jetzt weiss, dass es eben so ist: Immer im Sattel bleiben und nicht verzagen.


Herzlichen Dank euch allen!!!