thoblerone
Grünschnabel
Hallo Leute,
ich versuche seit mehreren Tagen herauszufinden, wie man mit dem neuesten Visual Studio 2005 eine VB.NET-Komponente erstellt, um diese auch in Excel VBA zu benutzen.
In VB6 ist das ganz einfach. Ein Projekt vom Typ ActiveX-Dll anlegen, Name für das Klassenmodul (z.B. ExcelTestVB6) , im Klassenmodul eine Funktion schreiben wie z.B.
Public Function Add(ByVal x As Double, ByVal y As Double) As Double
Add = x + y
End Function
;-) Das auch VBA addieren kann weiss ich. Das hier ist nur ein möglichst einfaches Beispiel
Dann Dll kompilieren, excel öffenen, referenz auf dll anlegen und schon kann man loslegen:
Private Sub CommandButton1_Click()
Dim objAdd As New ExcelTestVB6 ' Oder wie immer das Projekt heisst
Dim result As Double
result = objAdd.Add(4.3, 5.2)
MsgBox result
End Sub
Das klappt bei mir absolut problemlos. Leider möchte ich aber das .net 2.0 Framework nutzen und möchte daher eine ähnliche Funktionalität in Visual Studio 2005 abbilden. Leider funktioniert genau das so nicht!
1. Es gibt keinen Projektyp "ActiveX dll"
2. Wenn ich eine "Klassenbibliothek" anlegen oder wenn ich
3. das oben gemachte Projekt konvertiere
sehe ich zwar mein Objekt in Excel, wenn ich eine Refernz hinzufüge, aber wenn ich es versuche zu nutzen, gibt es ein "activex cant create object" Fehler in xl VBA. Auffällig ist auch, das die Funktionen der VB2005-Komponente im Gegensatz zur VB6-Komponente nicht aufgelöst werden. Irgendetwas läuft da also schief.
Hat jemand eine Idee oder weiss, wo man sich ein Demo-Projekt herunterladen kann?
Viele Grüße
Thomas
ich versuche seit mehreren Tagen herauszufinden, wie man mit dem neuesten Visual Studio 2005 eine VB.NET-Komponente erstellt, um diese auch in Excel VBA zu benutzen.
In VB6 ist das ganz einfach. Ein Projekt vom Typ ActiveX-Dll anlegen, Name für das Klassenmodul (z.B. ExcelTestVB6) , im Klassenmodul eine Funktion schreiben wie z.B.
Public Function Add(ByVal x As Double, ByVal y As Double) As Double
Add = x + y
End Function
;-) Das auch VBA addieren kann weiss ich. Das hier ist nur ein möglichst einfaches Beispiel
Dann Dll kompilieren, excel öffenen, referenz auf dll anlegen und schon kann man loslegen:
Private Sub CommandButton1_Click()
Dim objAdd As New ExcelTestVB6 ' Oder wie immer das Projekt heisst
Dim result As Double
result = objAdd.Add(4.3, 5.2)
MsgBox result
End Sub
Das klappt bei mir absolut problemlos. Leider möchte ich aber das .net 2.0 Framework nutzen und möchte daher eine ähnliche Funktionalität in Visual Studio 2005 abbilden. Leider funktioniert genau das so nicht!
1. Es gibt keinen Projektyp "ActiveX dll"
2. Wenn ich eine "Klassenbibliothek" anlegen oder wenn ich
3. das oben gemachte Projekt konvertiere
sehe ich zwar mein Objekt in Excel, wenn ich eine Refernz hinzufüge, aber wenn ich es versuche zu nutzen, gibt es ein "activex cant create object" Fehler in xl VBA. Auffällig ist auch, das die Funktionen der VB2005-Komponente im Gegensatz zur VB6-Komponente nicht aufgelöst werden. Irgendetwas läuft da also schief.
Hat jemand eine Idee oder weiss, wo man sich ein Demo-Projekt herunterladen kann?
Viele Grüße
Thomas