Projekte und Referenzen: Unterschied zwischen den Versionen
Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Projekte == Analog zu anderen Programmiersprachen, mit denen selbständig laufende Programme erzeugt werden, werden sämtliche (Klassen-)Module, Formulare…“) |
Pwania (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
== Projekte == | == Projekte == | ||
Analog zu anderen Programmiersprachen, mit denen selbständig laufende Programme erzeugt werden, werden sämtliche (Klassen-)Module, Formulare und Projektbezogene Daten in Projekten zusammengefasst. Die Tatsache, dass Sie mit VBA jedoch keine eigenständige Programme, sondern die Erweiterung einer Office-Anwendung programmieren, führt dazu, dass Sie im VBA-Editor keine neuen Projekte anlegen und an einem beliebigen Ort ablegen können. Stattdessen ist jedes Projekt an ein (Word-)Dokument, eine (PowerPoint-)Präsentation oder eine (Excel-)Arbeitsmappe bzw. ein Add-In gebunden. Wenn Sie also ein neues Projekt erstellen möchten, müssen Sie eine entsprechende Office-Datei erzeugen, und wenn Sie ein Projekt speichern, wird die Office-Datei gespeichert. | Analog zu anderen Programmiersprachen, mit denen selbständig laufende Programme erzeugt werden, werden sämtliche (Klassen-)Module, Formulare und Projektbezogene Daten in Projekten zusammengefasst. | ||
Die Tatsache, dass Sie mit VBA jedoch keine eigenständige Programme, sondern die Erweiterung einer Office-Anwendung programmieren, führt dazu, dass Sie im VBA-Editor keine neuen Projekte anlegen und an einem beliebigen Ort ablegen können. Stattdessen ist jedes Projekt an ein (Word-)Dokument, eine (PowerPoint-)Präsentation oder eine (Excel-)Arbeitsmappe bzw. ein Add-In gebunden. | |||
Wenn Sie also ein neues Projekt erstellen möchten, müssen Sie eine entsprechende Office-Datei erzeugen, und wenn Sie ein Projekt speichern, wird die Office-Datei gespeichert. | |||
=== Wirkungsbereich von Projekten === | === Wirkungsbereich von Projekten === | ||
Abhängig vom gewählten Dateityp kann der Inhalt eines Projektes generell oder gezielt zur Verfügung gestellt werden. Grundsätzlich gilt, dass die Programmierung direkt an die Datei gebunden ist und somit dann zur Verfügung steht, wenn die Datei geöffnet ist. Bitte beachten Sie dennoch folgende Tabelle, denn insbesondere bei den Vorlagen verhalten sich die Office-Anwendungen unterschiedlich. Alle Angaben zu den Projekten gelten übrigens auch für die Anpassungen der Benutzeroberfläche. | Abhängig vom gewählten Dateityp kann der Inhalt eines Projektes generell oder gezielt zur Verfügung gestellt werden. Grundsätzlich gilt, dass die Programmierung direkt an die Datei gebunden ist und somit dann zur Verfügung steht, wenn die Datei geöffnet ist. Bitte beachten Sie dennoch folgende Tabelle, denn insbesondere bei den Vorlagen verhalten sich die Office-Anwendungen unterschiedlich. | ||
{| class="wikitable" | |||
Alle Angaben zu den Projekten gelten übrigens auch für die Anpassungen der Benutzeroberfläche. | |||
{| class="wikitable" | |||
! style="text-align:left;" | Anwendung | ! style="text-align:left;" | Anwendung | ||
! style="text-align:left;" | Dateityp | ! style="text-align:left;" | Dateityp | ||
Zeile 15: | Zeile 22: | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| Word | | Word | ||
| Dokument | | Dokument | ||
| doc, docm | | doc, docm | ||
| Ausschließlich in diesem Dokument, solange es geöffnet ist. | | Ausschließlich in diesem Dokument, solange es geöffnet ist. | ||
| Erweiterung eines bestimmten Dokumentes um spezielle Funktionalitäten. | | | Erweiterung eines bestimmten Dokumentes um spezielle Funktionalitäten. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Vorlage | | | ||
| Vorlage | |||
| dot, dotm | | dot, dotm | ||
| Ausschließlich in dieser Vorlage sowie allen Dokumenten, die von dieser Vorlage abgeleitet werden. | | Ausschließlich in dieser Vorlage sowie allen Dokumenten, die von dieser Vorlage abgeleitet werden. | ||
| Erweiterung eines bestimmten Dokumenttyps um spezielle Funktionalitäten. | | | Erweiterung eines bestimmten Dokumenttyps um spezielle Funktionalitäten. | ||
* Da jedes Word Dokumente einen Verweis auf ihre Vorlage hat, wird die Programmierung nicht in das Dokument kopiert. | | | ||
* Da jedes Word Dokumente einen Verweis auf ihre Vorlage hat, wird die Programmierung nicht in das Dokument kopiert. | |||
* Änderungen an der Programmierung in der Vorlage wirken sich auch auf schon erstellte Dokumente aus, sobald diese geöffnet werden. | * Änderungen an der Programmierung in der Vorlage wirken sich auch auf schon erstellte Dokumente aus, sobald diese geöffnet werden. | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Globale Vorlage, Add-In | | | ||
| Globale Vorlage, Add-In | |||
| dot, dotm | | dot, dotm | ||
| Gilt anwendungsweit, sobald die globale Vorlage (bzw. das Add-In) geladen wurde, üblicherweise mit dem Start von Word. | | Gilt anwendungsweit, sobald die globale Vorlage (bzw. das Add-In) geladen wurde, üblicherweise mit dem Start von Word. | ||
| Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | | | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| Excel | | Excel | ||
Zeile 36: | Zeile 48: | ||
| xls, xlsm | | xls, xlsm | ||
| Ausschließlich in dieser Arbeitsmappe, solange diese geöffnet ist. | | Ausschließlich in dieser Arbeitsmappe, solange diese geöffnet ist. | ||
| Erweiterung einer bestimmten Arbeitsmappe um spezielle Funktionalitäten. | | | Erweiterung einer bestimmten Arbeitsmappe um spezielle Funktionalitäten. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Vorlage | | | ||
| Vorlage | |||
| xlt, xltm | | xlt, xltm | ||
| Ausschließlich in dieser Vorlage. Programmierung wird in alle Arbeitsmappen kopiert, die von dieser Vorlage erstellt werden. | | Ausschließlich in dieser Vorlage. Programmierung wird in alle Arbeitsmappen kopiert, die von dieser Vorlage erstellt werden. | ||
| Erweiterung eines bestimmten Arbeitsmappentyps um spezielle Funktionalitäten. | | | Erweiterung eines bestimmten Arbeitsmappentyps um spezielle Funktionalitäten. | ||
* Excel Arbeitsmappen haben keinen Verweis auf ihre Vorlage, bei der Erstellung von Arbeitsmappen wird lediglich die Programmierung in die neue Arbeitsmappe kopiert. | | | ||
* Diese müssen also als 'xlsm'-Dateien gespeichert werden, wenn die Programmierung erhalten bleiben soll. | * Excel Arbeitsmappen haben keinen Verweis auf ihre Vorlage, bei der Erstellung von Arbeitsmappen wird lediglich die Programmierung in die neue Arbeitsmappe kopiert. | ||
* Diese müssen also als 'xlsm'-Dateien gespeichert werden, wenn die Programmierung erhalten bleiben soll. | |||
* Außerdem betrifft eine Anpassung der Programmierung in der Vorlage nur solche Arbeitsmappen, welche nach der Änderung erstellt wurden. | * Außerdem betrifft eine Anpassung der Programmierung in der Vorlage nur solche Arbeitsmappen, welche nach der Änderung erstellt wurden. | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Add-In | | | ||
| Add-In | |||
| xla, xlam | | xla, xlam | ||
| Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von Excel. | | Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von Excel. | ||
| Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | | | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| PowerPoint | | PowerPoint | ||
Zeile 55: | Zeile 72: | ||
| ppt, pptm | | ppt, pptm | ||
| Ausschließlich in dieser Präsentation, solange diese geöffnet ist. | | Ausschließlich in dieser Präsentation, solange diese geöffnet ist. | ||
| Erweiterung einer bestimmten Präsentation um spezielle Funktionalitäten. | | | Erweiterung einer bestimmten Präsentation um spezielle Funktionalitäten. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Vorlage | | | ||
| Vorlage | |||
| pot, potm | | pot, potm | ||
| Ausschließlich in dieser Vorlage. Programmierung wird in alle Präsentationen kopiert, die von dieser Vorlage erstellt werden. | | Ausschließlich in dieser Vorlage. Programmierung wird in alle Präsentationen kopiert, die von dieser Vorlage erstellt werden. | ||
| Erweiterung eines bestimmten Präsentationstyps um spezielle Funktionalitäten. | | | Erweiterung eines bestimmten Präsentationstyps um spezielle Funktionalitäten. | ||
* PowerPoint Präsentationen haben keinen Verweis auf ihre Vorlage, bei der Erstellung von Präsentationen wird lediglich die Programmierung in die neue Präsentationen kopiert. | | | ||
* Diese müssen also als 'pptm'-Dateien gespeichert werden, wenn die Programmierung erhalten bleiben soll. | * PowerPoint Präsentationen haben keinen Verweis auf ihre Vorlage, bei der Erstellung von Präsentationen wird lediglich die Programmierung in die neue Präsentationen kopiert. | ||
* Diese müssen also als 'pptm'-Dateien gespeichert werden, wenn die Programmierung erhalten bleiben soll. | |||
* Außerdem betrifft eine Anpassung der Programmierung in der Vorlage nur solche Präsentationen, welche nach der Änderung erstellt wurden. | * Außerdem betrifft eine Anpassung der Programmierung in der Vorlage nur solche Präsentationen, welche nach der Änderung erstellt wurden. | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | Add-In | | | ||
| Add-In | |||
| ppa, ppam | | ppa, ppam | ||
| Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von PowerPoint. | | Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von PowerPoint. | ||
| Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | | | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
| | |||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| Outlook | | Outlook | ||
Zeile 74: | Zeile 96: | ||
| otm | | otm | ||
| Gilt anwendungsweit mit dem Start von Outlook. | | Gilt anwendungsweit mit dem Start von Outlook. | ||
| Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | | | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
| | |||
* Outlook kann ausschließlich ein Projekt als Erweiterung der Anwendung enthalten. | * Outlook kann ausschließlich ein Projekt als Erweiterung der Anwendung enthalten. | ||
* Eine direkte Erweiterung von einzelnen Elementen (Mails, Kontakte etc.) ist somit nicht möglich. | * Eine direkte Erweiterung von einzelnen Elementen (Mails, Kontakte etc.) ist somit nicht möglich. | ||
* Sie können jedoch den aktuellen Elementtyp abfragen und entsprechend darauf Ihre Lösung anwenden. | * Sie können jedoch den aktuellen Elementtyp abfragen und entsprechend darauf Ihre Lösung anwenden. | ||
|} | |} | ||
== Referenzen == | |||
Mithilfe von Referenzen können vom aktuellen Projekt aus auf alle öffentlichen Inhalte eines referenzierten Projektes zugegriffen werden. | |||
Eine Referenz wird über den Befehl 'Extras', 'Verweise' im VBA-Editor hinzugefügt. | |||
=== Projektübergreifender Zugriff ohne Referenz === | === Projektübergreifender Zugriff ohne Referenz === | ||
Zusätzlich besteht die Möglichkeit, auch ohne Referenz direkt eine Prozedur in einem anderen Projekt aufzurufen. Hierzu müssen Sie jedoch absolut sicher gehen, dass das entsprechende Projekt (die Datei, welche die Programmierung enthält) geöffnet ist! | |||
Application.Run "'test2.xla'!start" | Application.Run "'test2.xla'!start" | ||
Außerdem können Sie auf diesem Wege keine Rückgabewerte von Funktionen entgegennehmen. |
Version vom 10. Oktober 2018, 15:41 Uhr
Projekte
Analog zu anderen Programmiersprachen, mit denen selbständig laufende Programme erzeugt werden, werden sämtliche (Klassen-)Module, Formulare und Projektbezogene Daten in Projekten zusammengefasst.
Die Tatsache, dass Sie mit VBA jedoch keine eigenständige Programme, sondern die Erweiterung einer Office-Anwendung programmieren, führt dazu, dass Sie im VBA-Editor keine neuen Projekte anlegen und an einem beliebigen Ort ablegen können. Stattdessen ist jedes Projekt an ein (Word-)Dokument, eine (PowerPoint-)Präsentation oder eine (Excel-)Arbeitsmappe bzw. ein Add-In gebunden.
Wenn Sie also ein neues Projekt erstellen möchten, müssen Sie eine entsprechende Office-Datei erzeugen, und wenn Sie ein Projekt speichern, wird die Office-Datei gespeichert.
Wirkungsbereich von Projekten
Abhängig vom gewählten Dateityp kann der Inhalt eines Projektes generell oder gezielt zur Verfügung gestellt werden. Grundsätzlich gilt, dass die Programmierung direkt an die Datei gebunden ist und somit dann zur Verfügung steht, wenn die Datei geöffnet ist. Bitte beachten Sie dennoch folgende Tabelle, denn insbesondere bei den Vorlagen verhalten sich die Office-Anwendungen unterschiedlich.
Alle Angaben zu den Projekten gelten übrigens auch für die Anpassungen der Benutzeroberfläche.
Anwendung | Dateityp | Dateierweiterungen | Geltungsbereich | Einsatzzweck | Besonderheiten |
---|---|---|---|---|---|
Word | Dokument | doc, docm | Ausschließlich in diesem Dokument, solange es geöffnet ist. | Erweiterung eines bestimmten Dokumentes um spezielle Funktionalitäten. | |
Vorlage | dot, dotm | Ausschließlich in dieser Vorlage sowie allen Dokumenten, die von dieser Vorlage abgeleitet werden. | Erweiterung eines bestimmten Dokumenttyps um spezielle Funktionalitäten. |
| |
Globale Vorlage, Add-In | dot, dotm | Gilt anwendungsweit, sobald die globale Vorlage (bzw. das Add-In) geladen wurde, üblicherweise mit dem Start von Word. | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
Excel | Arbeitsmappe | xls, xlsm | Ausschließlich in dieser Arbeitsmappe, solange diese geöffnet ist. | Erweiterung einer bestimmten Arbeitsmappe um spezielle Funktionalitäten. | |
Vorlage | xlt, xltm | Ausschließlich in dieser Vorlage. Programmierung wird in alle Arbeitsmappen kopiert, die von dieser Vorlage erstellt werden. | Erweiterung eines bestimmten Arbeitsmappentyps um spezielle Funktionalitäten. |
| |
Add-In | xla, xlam | Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von Excel. | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
PowerPoint | Präsentation | ppt, pptm | Ausschließlich in dieser Präsentation, solange diese geöffnet ist. | Erweiterung einer bestimmten Präsentation um spezielle Funktionalitäten. | |
Vorlage | pot, potm | Ausschließlich in dieser Vorlage. Programmierung wird in alle Präsentationen kopiert, die von dieser Vorlage erstellt werden. | Erweiterung eines bestimmten Präsentationstyps um spezielle Funktionalitäten. |
| |
Add-In | ppa, ppam | Gilt anwendungsweit, sobald das Add-In geladen wurde, üblicherweise mit dem Start von PowerPoint. | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. | ||
Outlook | VBAProject | otm | Gilt anwendungsweit mit dem Start von Outlook. | Erweiterung der Anwendung um Werkzeuge und kundenspezifische Funktionalitäten, welche immer zur Verfügung stehen sollen. |
|
Referenzen
Mithilfe von Referenzen können vom aktuellen Projekt aus auf alle öffentlichen Inhalte eines referenzierten Projektes zugegriffen werden.
Eine Referenz wird über den Befehl 'Extras', 'Verweise' im VBA-Editor hinzugefügt.
Projektübergreifender Zugriff ohne Referenz
Zusätzlich besteht die Möglichkeit, auch ohne Referenz direkt eine Prozedur in einem anderen Projekt aufzurufen. Hierzu müssen Sie jedoch absolut sicher gehen, dass das entsprechende Projekt (die Datei, welche die Programmierung enthält) geöffnet ist!
Application.Run "'test2.xla'!start"
Außerdem können Sie auf diesem Wege keine Rückgabewerte von Funktionen entgegennehmen.