VBA, Fragen dazu
#7
Hallo Olaf,

(02.10.2020, 21:09)Olaf schrieb: ...Ich habe ein paar Allgemeine Fragen zu VBA. Teilweise sicherlich lächerlich Dinge aber für mich wichtig, da ich wirklich noch am Anfang stehe...

Bisher war keine Deiner Fragen lächerlich, auch in diesem Beitrag kann ich keine lächerliche Frage finden.

(02.10.2020, 21:09)Olaf schrieb: Was ist der Unterschied zwischen einem Modul in das ich Code eingebe und z.B. This Macro Storage oder This Document. Ist es wichtig Wo ich welchen Code eintrage oder könnte ich, übertrieben gefragt, den Code reinschrieben wo ich möchte? Kann ich, wenn ich möchte, jede "Funktion" für mich zur Übersicht in viele einzelne Module hineinschreiben um den Code schön sauber zu separieren?

Grundsätzlich kannst Du den Code hineinschreiben wo Du möchtest. Makros, die mit einem Dokument weitergegeben werden sollen, musst Du natürlich im Dokument platzieren. Makros, die nicht an ein bestimmtes Dokument gebunden sind und auf dem lokalen Rechner bleiben sollen, kannst Du in die (von Corel angelegte) GMS-Datei „GlobalMakros“ schreiben. Weil das schnell unübersichtlich werden kann, solltest Du Deine Projekte aber in eigenen GMS-Dateien ablegen.

Innerhalb von Dokumenten oder GMS-Dateien kannst Du so viele Module anlegen, wie Du willst. Neben einfachen Codemodulen gibt es noch Klassenmodule, UserForm-Module (für Benutzerdialoge) und Module die Ereignisse durch Ereignisprozeduren verarbeiten können. Zu letzteren gehören „ThisMacroStorage“ in GMS-Dateien und „ThisDocument“ in Dokumenten.

[Bild: neuesdokument-1mvj9u.jpg]

Das öffnen eines Dokuments wäre ein Ereignis, das durch die Ereignisprozedur „Document_Open“ verarbeitet werden kann. Steht die Ereignisprozedur in „ThisDocument“ wird das Öffnen dieses Dokuments verarbeitet, steht sie in „ThisMacroStorage“ wird sie bei jedem Öffnen irgendeines Dokuments verarbeitet. Auch in Deinen eigenen GMS-Dateien findest Du „ThisMacroStorage“, Du musst also die „GlobalMakros“ nicht verwenden.
In diesen speziellen Modulen sind die möglichen Ereignisse vorgegeben. Du kannst ein Ereignis über ein Dropdown auswählen und die Ereignisprozedur wird automatisch angelegt.

[Bild: docopenh0kwy.gif]

Prozeduren, die von Ereignisprozeduren aufgerufen werden, können auch in anderen Modulen stehen.

Klassenmodule werden im Tutorial gut erklärt, darauf möchte ich jetzt nicht eingehen.

(02.10.2020, 21:09)Olaf schrieb: ...Gibt es irgendwo eine Art Übersicht über alle Befehle in Form einer Liste die z.B. in verschiedene Bereiche aufgeteilt ist und wo eventuell auch eine Kurzerklärung steht was der Befehl bewirkt?...

Eine Liste der Befehle, die Bestandteil der Programmiersprache VBA sind, findest Du in der Funktionsreferenz des Tutorials. Diese ist thematisch geordnet und für jeden Befehl gibt es dort eine Kurzerklärung.

Die Befehle der Wirtsanwendung (also des Programms in das VBA integriert ist wie CorelDRAW, Word, AutoCAD usw.) findet man in der Hilfe des entsprechenden Programms. Die Befehle des Programms sind als Methoden von Objekten und deren Unterobjekten angelegt. Die oberste Ebene ist dabei das Application-Objekt, also das Programm selber. Objekte und Unterobjekte bilden das Objektmodell. Dieses Objektmodell wird oft (so übersichtlich wie möglich) in einer Grafik beschrieben. Das Objektmodell für CorelDRAW X7 findest Du z.B. hier.

Die Befehle (Methoden) wird man aber kaum verstehen, wenn man sich nicht vorher mit dem Programm selber und den Objekten des Programms befasst hat. Solche Listen haben eine einschüchternde Länge. Eine solche Liste durchzugehen ist (meiner Meinung nach) keine sinnvolle Lernmethode.

Zusätzliche Hinweise:

Damit ein Objekt zur Verfügung steht, muss ein Verweis auf die Objektbibliothek gesetzt sein.
Einen Verweis kann man unter Extras/Verweise setzen:

[Bild: verweise1nk9k.jpg]

Wenn Du z.B. von Coreldraw auf Microsoft-Word-Objekte zugreifen willst, kannst Du einen Verweis auf die Word-Objektbibliothek setzen.

Ein kleines Beispiel bei dem der erste Absatz eines geöffneten Word-Dokuments in den dritten Absatz eines CorelDraw-Mengentextes kopiert wird:

[Bild: vonword3djux.gif]

Code:
Sub AbsatzAusWordEinfügen()
   Dim WordAbsatz As String
   WordAbsatz = Word.ActiveDocument.Paragraphs(1).Range
   ActiveLayer.Shapes("MText1").Text.Story.Paragraphs(3) = WordAbsatz
End Sub

Das Objekt „Word“ würde es ohne den Verweis nicht geben.
(tolles Beispiel, sowas braucht man täglich!) MrGreen

Wenn Du sehen willst, welche Objekte zur Verfügung stehen ist der Objektkatalog (F2) nützlich.

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Olaf
Zitieren



Nachrichten in diesem Thema
VBA, Fragen dazu - von Olaf - 15.09.2020, 15:19
RE: VBA, Fragen dazu - von Olaf - 17.09.2020, 11:51
RE: VBA, Fragen dazu - von Olaf - 18.09.2020, 11:01
RE: VBA, Fragen dazu - von koter - 17.10.2020, 16:40
RE: VBA, Fragen dazu - von koter - 18.09.2020, 16:30
RE: VBA, Fragen dazu - von Olaf - 02.10.2020, 21:09
RE: VBA, Fragen dazu - von koter - 03.10.2020, 13:13
RE: VBA, Fragen dazu - von Olaf - 08.10.2020, 14:19
RE: VBA, Fragen dazu - von koter - 08.10.2020, 20:00
RE: VBA, Fragen dazu - von Olaf - 09.10.2020, 23:20
RE: VBA, Fragen dazu - von koter - 10.10.2020, 03:01
RE: VBA, Fragen dazu - von koter - 10.10.2020, 11:36
RE: VBA, Fragen dazu - von Olaf - 12.10.2020, 11:07
RE: VBA, Fragen dazu - von Olaf - 12.10.2020, 14:01
RE: VBA, Fragen dazu - von Olaf - 15.10.2020, 17:06
RE: VBA, Fragen dazu - von Olaf - 26.10.2020, 12:51
RE: VBA, Fragen dazu - von koter - 26.10.2020, 22:04
RE: VBA, Fragen dazu - von Suc - 26.10.2020, 13:33
RE: VBA, Fragen dazu - von Olaf - 26.10.2020, 13:43
RE: VBA, Fragen dazu - von Olaf - 27.10.2020, 07:43
RE: VBA, Fragen dazu - von Olaf - 27.10.2020, 08:44

Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Corel Graphic Suite 2020 oder 2021 + Fragen dazu Woodpecker 0 903 30.10.2022, 16:51
Letzter Beitrag: Woodpecker
  Fragen eines blutigen Anfänger Spiderschweinn 10 2.678 05.04.2016, 20:02
Letzter Beitrag: ensing
  Fragen zu Corel Draw X6 Home & Student RSoutside 31 10.803 01.12.2014, 13:32
Letzter Beitrag: RSoutside
  Wechsel X4 auf X6, Fragen!? TottiSB 3 1.364 26.07.2012, 12:06
Letzter Beitrag: mvm
  Einige CorelDraw X4 Fragen anorak 4 2.344 04.03.2011, 14:49
Letzter Beitrag: anorak
  Neuling hat Fragen zu Corel Draw Schnittmustererstellung anhand von Bitmap lizardqueen 2 2.613 20.11.2009, 11:43
Letzter Beitrag: skifan
  Fragen zur Schnittmenge Hirs 1 948 18.10.2009, 04:09
Letzter Beitrag: Nachtviole
  allgemeine Fragen zu Corel Draw wolle28071975 2 3.980 17.05.2009, 17:24
Letzter Beitrag: Unkraut