Hallo liebe Community,
Da ich schon einige Monate mit VB.NET programmiere, will ich nicht mehr auf all die Möglichkeiten des .NET-Frameworks verzichten, wenn ich in Excel-VBA code. Aus diesem Grund nahm ich mir vor, eine COM-Klasse zu schreiben, die einige wichtige und nützliche Klassen aus dem Framework beinhaltet. Bis jetzt klappt es.
Jedoch, als ich sie testen wollte, und es sich bei der getesteten Klasse um eine zu instanzierende Klasse (z.B. IO.FileInfo) mit Properties handelte, bekam ich folgenden Fehler:
Ich hab' wie im Tipp beschrieben im Konstruktor keine Paramter verlangt. Die holte ich dann über eine Klasseneigene Prozedur. Und genau an diesem Punkt meckert Excel rum
Ich wollte fragen, ob es eine Möglichkeit gibt, in COM-Klassen mit Properties zu arbeiten, da ich die statischen Methoden der IO.File-Klasse micht wirklich mag und die Instanzierung doch sehr angenehm zuhandhaben ist.
Ich hab' das Ganze mit dieser Klasse ausprobiert
Grüsse
Higlav
Edit:
Ich hab' gestern noch ein wenig herumprobiert.
Anscheinend funktioniert auch die Instanzierung von Objekten in der Klasse nicht.
Ich wollte mit meiner COM-Klasse eigentlich die Funktionsweise einiger meiner VBA-Skripte beträchtlich erhöhen, aber mit so starken Einschränkungen hab' ich nicht gerechnet...
Edit by hal2000:
- Posts zusammengefügt.
Da ich schon einige Monate mit VB.NET programmiere, will ich nicht mehr auf all die Möglichkeiten des .NET-Frameworks verzichten, wenn ich in Excel-VBA code. Aus diesem Grund nahm ich mir vor, eine COM-Klasse zu schreiben, die einige wichtige und nützliche Klassen aus dem Framework beinhaltet. Bis jetzt klappt es.
Jedoch, als ich sie testen wollte, und es sich bei der getesteten Klasse um eine zu instanzierende Klasse (z.B. IO.FileInfo) mit Properties handelte, bekam ich folgenden Fehler:
Objekterstellung durch ActiveX-Komponente nicht möglich
Ich hab' wie im Tipp beschrieben im Konstruktor keine Paramter verlangt. Die holte ich dann über eine Klasseneigene Prozedur. Und genau an diesem Punkt meckert Excel rum
Ich wollte fragen, ob es eine Möglichkeit gibt, in COM-Klassen mit Properties zu arbeiten, da ich die statischen Methoden der IO.File-Klasse micht wirklich mag und die Instanzierung doch sehr angenehm zuhandhaben ist.
VB.NET-Quellcode
- <ComClass(Versuch.ClassId, Versuch.InterfaceId, Versuch.EventsId)> Public Class Versuch
- Public Const ClassId As String = "819f1953-1dee-4c4e-b1d6-e4580a11cf7d"
- Public Const InterfaceId As String = "90982013-e8a8-4d5b-8fb8-4165b2530c56"
- Public Const EventsId As String = "d36565fc-d501-4ac8-896b-c1c0da60f9bf"
- Private _Str As String
- Public Property Str As String
- Get
- Return _Str
- End Get
- Set(value As String)
- _Str = value
- End Set
- End Property
- Public Sub New()
- MyBase.New()
- End Sub
- Public Sub Eintragen(Str As String)
- _Str = Str
- End Sub
- End Class
Grüsse
Higlav
Edit:
Ich hab' gestern noch ein wenig herumprobiert.
Anscheinend funktioniert auch die Instanzierung von Objekten in der Klasse nicht.
Ich wollte mit meiner COM-Klasse eigentlich die Funktionsweise einiger meiner VBA-Skripte beträchtlich erhöhen, aber mit so starken Einschränkungen hab' ich nicht gerechnet...
Edit by hal2000:
- Posts zusammengefügt.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „hal2000“ () aus folgendem Grund: Titel war falsch gewählt