Discussion:
Klassen aus externen Dateien nutzen/importieren
(zu alt für eine Antwort)
Thomas Baerwinkel
2005-01-04 10:32:30 UTC
Permalink
Hallo,

gibt es eine Möglichkeit Klassen aus externen Dateien zu nutzen?

Ich möchte gern allgemeine Klassen in einem extra file speichern und
dann in das aktuelle file mit einbinden.

MfG Thomas Bärwinkel
Reiner Wolff
2005-01-04 10:44:43 UTC
Permalink
Moin Thomas,
Post by Thomas Baerwinkel
gibt es eine Möglichkeit Klassen aus externen Dateien zu nutzen?
Kommt darauf an, aus welchen Dateien. Aber prinzipiell geht das.
Post by Thomas Baerwinkel
Ich möchte gern allgemeine Klassen in einem extra file speichern und
dann in das aktuelle file mit einbinden.
Die einfachste Möglichkeit wäre, die Klassen einfach in einer DLL zu
erstellen. Nun hat aber nicht jeder die Möglichkeit eigene DLLs zu
erstellen.
Eine andere Möglichkeit wäre, es in einer Excel-Datei abzulegen (die
Personl.xls könnte sich dafür anbieten). Vorgehen für das Anlegen außerhalb
der Personl.xls:
1. Neue Datei öffnen
2. Menü Fenster - Ausblenden, damit nicht immer ein Tabellenblatt zu
sehen ist
3. im VBA-Editor in die Eigenschaft des VBA-Projektes gehen und ihm
einen anderen Namen geben.
4. die Klassen hinzufügen.
5. darauf achten, dass die Instancing-Eigenschaft der Klassen auf
PublicNotCreatable steht.
6. Datei speichern (und ggf. schließen)

Einbinden der Klassen in anderen Dateien:
1. im VBA-Editor auf Menü Extras - Verweise gehen
2. auf 'Durchsuchen' klicken
2. den Dateityp auf 'Microsoft Excel Files' umstellen
3. und die oben erstellte Excel-Datei auswählen.

Fertig.

Greetinx aus Kiel
Reiner
--
Computer sind grossartig. Mit ihnen macht man die Fehler viel schneller.
Thomas Baerwinkel
2005-01-04 12:20:59 UTC
Permalink
Hallo Reiner,

danke für die schnelle hilfe. Genau das habe ich gesucht
Post by Reiner Wolff
Die einfachste Möglichkeit wäre, die Klassen einfach in einer DLL zu
erstellen. Nun hat aber nicht jeder die Möglichkeit eigene DLLs zu
erstellen.
wie kann ich eigene DLLs erstellen? brauch ich dazu die Developer
Version von Office oder Excel?

Ich benutze zur Zeit excel 2002.

MfG Thomas Bärwinkel
Thomas Baerwinkel
2005-01-04 12:49:58 UTC
Permalink
Hallo Reiner,

es gibt doch ein kleines Problem. Die Klassen sind zwar bekannt, ich
kann aber kein Objekt anlegen.

Dim a As new MyClass

erzeugt den Fehler: "Invalid use of New keyword"

MfG Thomas Bärwinkel
Reiner Wolff
2005-01-04 13:49:07 UTC
Permalink
Moin Thomas,
Post by Thomas Baerwinkel
es gibt doch ein kleines Problem. Die Klassen sind zwar bekannt, ich
kann aber kein Objekt anlegen.
Dim a As new MyClass
erzeugt den Fehler: "Invalid use of New keyword"
Auch wenn Du besser schreiben solltest,
Dim a As MyClass
Set a = New MyClass

ändert das nichts am Verhalten. Jetzt wissen wir also, was das
'NotCreatable' in den Eigenschaften bedeuten soll. :-(
Post by Thomas Baerwinkel
wie kann ich eigene DLLs erstellen? brauch ich dazu die Developer
Version von Office oder Excel?
Hm, ich hab' jetzt keine Developer-Edition installiert, um nachzusehen, ob
man dort noch mehr Eigenschaften für die Klasse einstellen kann.
Ansonsten kannst Du eine Native-DLL zum Beispiel mit C++ erstellen oder
Active-DLLs mit VisualBasic (Classic oder .Net).
Das sind aber komplette Entwicklungsumgebungen, die nicht so wirklich
kostengünstig sind.

Vielleicht geht es auch noch irgendwie über ein AddIn, aber das müsstest Du
mal ausprobieren.

Greetinx aus Kiel
Reiner
--
Wenn ein Programmierer sagt "kein Problem", dann hast Du eines.
Thomas Baerwinkel
2005-01-04 15:03:36 UTC
Permalink
Hallo Reiner,
Post by Reiner Wolff
Hm, ich hab' jetzt keine Developer-Edition installiert, um nachzusehen, ob
man dort noch mehr Eigenschaften für die Klasse einstellen kann.
Ansonsten kannst Du eine Native-DLL zum Beispiel mit C++ erstellen oder
Active-DLLs mit VisualBasic (Classic oder .Net).
Das sind aber komplette Entwicklungsumgebungen, die nicht so wirklich
kostengünstig sind.
Was wäre denn z.B. eine Entwicklungsumgeung für VisualBasic?

MfG Thomas
Reiner Wolff
2005-01-04 16:07:56 UTC
Permalink
Moin Thomas,
Post by Thomas Baerwinkel
Post by Reiner Wolff
Hm, ich hab' jetzt keine Developer-Edition installiert, um nachzusehen, ob
man dort noch mehr Eigenschaften für die Klasse einstellen kann.
Ansonsten kannst Du eine Native-DLL zum Beispiel mit C++ erstellen oder
Active-DLLs mit VisualBasic (Classic oder .Net).
Das sind aber komplette Entwicklungsumgebungen, die nicht so wirklich
kostengünstig sind.
Was wäre denn z.B. eine Entwicklungsumgeung für VisualBasic?
Die IDE von VisualBasic.
Aber ich verstehe die Nachfrage wohl nicht. Ansonsten heißen die Produkte
'VisualBasic 6.0', 'VisualBasic.Net' oder auch 'VisualStudio',
'VisualStudio.Net'.

VisualBasic und 'Visual Basic for Applications' sind grundsätzlich von den
Entwicklungsumgebungen 2 völlig unterschiedliche Dinge. VBA ist immer in
eine Anwendung integriert. VB ist eigenständig.

Greetinx aus Kiel
Reiner
--
"Who the fuck is General Failure? And why is he reading my harddisk?"
Ist das nicht der Kollege von "General Protection Fault" und "Major
Problem"?
Reiner Wolff
2005-01-04 14:03:15 UTC
Permalink
Moin Thomas,
Post by Thomas Baerwinkel
es gibt doch ein kleines Problem. Die Klassen sind zwar bekannt, ich
kann aber kein Objekt anlegen.
Dim a As new MyClass
erzeugt den Fehler: "Invalid use of New keyword"
OK, ich hab's nachgelesen:
http://support.microsoft.com/?id=555159

Lass die Instanz durch eine 'Public Function' in einem Standardmodul
erzeugen:
Public Function New_clsMeineKlasse() As clsMeineKlasse
Set New_clsMeineKlasse = New clsMeineKlasse
End Function



Greetinx aus Kiel
Reiner
--
EDV = Ende Der Vernunft
Loading...