Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Deklarationen zwischen Modulen austauschen?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Deklarationen zwischen Modulen austauschen? (603 mal gelesen)
Einstein
Mitglied
Zerspanungsmechaniker-Drehtechnik


Sehen Sie sich das Profil von Einstein an!   Senden Sie eine Private Message an Einstein  Schreiben Sie einen Gästebucheintrag für Einstein

Beiträge: 94
Registriert: 20.02.2005

erstellt am: 03. Jun. 2007 22:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, ich bin's schon wieder.
Diesmal die folgende Frage: Gibt es in VBA die Möglichkeit, Variablendeklarationen die man zum Beispiel im Modul A durchgeführt hat, auch im Modul B nutzen zu können (oder anders herum)?
Eventuell mit Include-Files? ...Doch damit kenn ich mich nicht aus.

------------------
MfG  A. Einstein    

P.S. Rechtschreibefehler sind gewollt und dienen der allgemeinen Belustigung!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1357
Registriert: 24.07.2002

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 04. Jun. 2007 06:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Einstein 10 Unities + Antwort hilfreich

Hi Einstein,

Kannst du deine Frage ein bißchen genauer stellen?! Willst du von der DVB "A" eine Funktion einer DVB "B" aufrufen?!
Include-Files gibt es im VBA nicht. Das ist eher in Richtung C++.
Du solltest dir da besser mal die Schlagworte "Public" und "Verweise" anschauen.

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Einstein
Mitglied
Zerspanungsmechaniker-Drehtechnik


Sehen Sie sich das Profil von Einstein an!   Senden Sie eine Private Message an Einstein  Schreiben Sie einen Gästebucheintrag für Einstein

Beiträge: 94
Registriert: 20.02.2005

erstellt am: 04. Jun. 2007 16:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, noch mal zu meiner Frage: In VBA besteht ja die Möglichkeit, mehrer Module in einer DVB-Datei zu erstellen. Ich möchte nun mehrer Module nutzen (z.B.: A, B und C). Wenn der Benutzer jetzt das Modul/Makro B startet benötige ich einige Variablendeklarationen aus Modul A. Ich könnte diese natürlich neu deklarieren, allerdings würde das die Filegröße sinnlos vergrößern, zum zweiten entstehen sinnlose Fehlerquellen und zum dritten interessiert das mich einfach mal.

------------------
MfG  A. Einstein    

P.S. Rechtschreibefehler sind gewollt und dienen der allgemeinen Belustigung!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1357
Registriert: 24.07.2002

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 04. Jun. 2007 17:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Einstein 10 Unities + Antwort hilfreich

Hi Einstein,

Hier mal ein Beispiel:

Code:
Edit: Wegen Fehler gelöscht. Dank an René.

Das ist nur mal als Beispiel gedacht. Zur Filegröße: Speicher mal deine DVB ohne eine Änderung und sie wird trotzdem größer. Von daher kannst du dir diese paar Bytes auch sparen.

Gruß, Carsten

[Diese Nachricht wurde von Carsten1210 am 05. Jun. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Headcase
Mitglied
Dipl.-Ing. (FH) --> Maschinenbau


Sehen Sie sich das Profil von Headcase an!   Senden Sie eine Private Message an Headcase  Schreiben Sie einen Gästebucheintrag für Headcase

Beiträge: 141
Registriert: 14.10.2004

WinXP Prof., SP3
AutoCAD Mechanical 2010 (2008)
Inventor 2010 (2008)

erstellt am: 05. Jun. 2007 08:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Einstein 10 Unities + Antwort hilfreich

Moin, Moin,

das stimmt so leider nicht!
Variablen, die mit Dim auf Modulebene deklariert werden, sind nur in dem Modul gültig, in dem die Anweisung steht. Werden sie auf Prozedurebene deklariert, dann sind sie sogar nur in dieser Prozedur gültig.
Soll eine Variable global gültig sein, also in allen Modulen des Projekts, dann muss sie mit Public deklariert werden.

Code:

**Modul1**

Dim a As Integer    '--> nur im Modul 1 verfügbar
Const b = 5        '--> nur im Modul 1 verfügbar
Public c As Integer '--> auch in den anderen Modulen verfügbar

Sub Test()
Dim d As Integer    '--> nur in Test() verfügbar
End Sub


Um Probleme mit nicht richtig deklarierten Variablen zu vermeiden, sollte auch die explizite Variablendeklaration aktiviert werden ("Option Explicit" im Modulkopf, bzw. Extras-->Optionen-->"Variablendeklaration erforderlich" aktivieren)

Grüße!
René

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 05. Jun. 2007 08:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Einstein 10 Unities + Antwort hilfreich

Hallo René,

Hast Rest, hab ich jetzt ein wenig durcheinander geworfen. Hab wohl zuviel geabreitet. 

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz