Seite 1 von 1

ActiveXObect aus VBA einbinden

Verfasst: Montag 29. Oktober 2007, 22:44
von oldfellow
Hallo,

ich habe eine ActiveX-Bibliothek für VBA (*.dll). Diese möchte ich gerne in mein Python Projekt integrieren.
erste Frage: Kann ich das programm dann auch unter Linux nutzen, oder kann die dll da nicht importiert werden?

zweite Frage: Wie kann folgende Zuweisung in Python nachbauen?
Der Namesraum heiß "OPCIO"
Die Klasse "IOPCServer"
hier ein beispiel aus VBA

Code: Alles auswählen

Dim Server As IOPCServer
Set Server = CreateObject("ServerName") 
Die "CreateObject" Funktion scheint eine VBA Funktion zu sein, sie wird zumindest nicht aus meiner dll importiert.

Vielleicht finden sich hier ja ein paar VBA oldies, mir selbst ist das eher fremd, da ich mich bisher an C# gehalten habe.
Jedoch möchte ich für dieses rel. kleine Projekt Python testen, zumal das Projekt plattform unabhängig laufen soll.

Vielen Dank für eure Hilfe
Grüße

Verfasst: Dienstag 30. Oktober 2007, 00:34
von BlackJack
ActiveX, VBA, DLL und *plattformunabhängig*!? So eine DLL kann man natürlich nur unter Windows nutzen.

Re: ActiveXObect aus VBA einbinden

Verfasst: Dienstag 30. Oktober 2007, 07:42
von gerold
oldfellow hat geschrieben:ich habe eine ActiveX-Bibliothek für VBA (*.dll). Diese möchte ich gerne in mein Python Projekt integrieren.
Hallo oldfellow!

ActiveX ist wie BlackJack schon schrieb eine Windows-Technik. Das läuft nicht unter anderen Betriebssystemen. Unter Linux vielleicht mit "Wine" http://de.wikipedia.org/wiki/WINE_Is_Not_an_Emulator aber wenn dann nur mit größeren Anstrengungen und einem Kunden nicht zumutbar.

Unter Windows kannst du so auf ActiveX-Komponenten zugreifen:

Code: Alles auswählen

import win32com
import win32com.client

server = win32com.client.dynamic.Dispatch('OPCIO.IOPCServer')
Dazu brauchst du noch das Paket "pywin32", welches du dir hier http://sourceforge.net/projects/pywin32/ besorgen kannst.

mfg
Gerold
:-)