VBA/Office97: Wer kennt sich aus mit ActiveX ?

Hi Leute !

Ich hoffe, daß ich hier endlich einen Experten finden kann…

Mein Problem handelt von der Verwendung des Standarddialog ActiveX - Steuerelements (COMDLG32.OCX) mit Visual Basic for Applications.

Folgendes:
Ich habe für eine Firma eine Anwendung in Word mit VBA erstellt. In dieser Anwendung verwende ich besagtes Standarddialog - Steuerelement, ich habe es meinem Projekt mit der Funktion „Weitere Steuerelemente…“ hinzugefügt, und hier bei mir funktioniert auch alles Prima. Das Steuerelement erscheint unter dem Namen „Microsoft Common Dialog Control V6.0“ - alles klar.
Bei der Firma allerdings funktioniert so gut wie gar nichts, Word meldet kuriose Dinge. Also habe ich mir heute Nachmittag mal alle 12 PCs der betreffenden Abteilung angesehen, und dabei kam folgendes heraus:

-> Was alle PCs gemeinsam haben ist: Windows NT4.0 und Office 97.

-> Auf etwa der hälfte der Rechnern ist ServicePack 5, auf den anderen ServicePack 4 installiert.

Auf vielen Rechnern zeigte VBA an, daß es ein Steuerelement mit Namen „Microsoft Common Dialog Control V5.0“ kennt, also nur eine Version unter dem was ich verwendet habe. Auf diesen Rechnern (genau 6 Stück) ließ sich das Problem dann auch endlich lösen, ich brauchte bloß die vorhandene COMDLG32.OCX zu deregistrieren (mit REGSVR32 /U …) und die Datei gegen die COMDLG32.OCX von mir Zuhause zu ersetzen, anschließend wieder registrieren und voilá - alles lief perfekt !
Bei allen anderen Rechnern funktionierte dies leider NICHT. In einigen Fällen erhielt ich danach die Fehlermeldung „Makrospeicher konnte nicht geladen werden“, in anderen Fällen brach Word ganz ab und „Dr. Watson“ wurde aufgerufen. Dieses Phänomen ist scheinbar unabhängig vom ServicePack, auf einem Rechner haben wir sogar probehalber ServicePack 6 und Office97 neu installiert, alles ohne Erfolg.
Wenn man auf diesen PCs versucht, im VBA - Editor einem neuen, noch leeren Dialog dieses Steuerelement manuell hinzuzufügen erhält man eine der folgenden Meldungen:

-> Steuerelement kann nicht hinzugefügt werden, da es nicht korrekt lizenziert worden ist (das hört sich zumindest sinnvoll an)

-> (Oder meine absolute Lieblingsmeldung, Achtung:smile: „Nicht weiter bezeichneter Fehler“. Drückt man hier auf Hilfe, kommt eine weitere Meldung: „Hilfethema nicht vorhanden“ - war irgendie klar… hilft mir aber auch nicht.

Meine letzte Vermutung ist nun, daß die Datei COMDLG32.OCX noch weitere DLLs o.Ä. benötigt. Aber gleich vorweg: An der gleichnamigen COMDLG32.DLL scheint es nicht zu hängen, die haben wir schon probehalber getauscht, ohne Erfolg. Aber es gibt sicher noch weitere Dateien, die in Frage kämen, nur welche ?

Meine Fragen:
-> Hat jemand vielleicht schon eine Lösung ? :wink:
-> Weiß jemand, welche Dateien noch alle zum Funktionieren von COMDLG32.OCX benötigt werden ?
-> Welche Einträge in der Registry sind von Bedeutung ?
-> Gibt es brauchbare Diagnosetools für ActiveX - Steuerelemente ?
-> Vielleicht weiß jemand ja auch eine alternative.

Schonmal Tausend Dank…

Viele Grüsse
André Köthur

Sorry, bin nicht so der Word-Spezi, aber vielleicht hilft die eine oder andere Idee.

-> Steuerelement kann nicht
hinzugefügt werden, da es nicht korrekt
lizenziert worden ist (das hört sich
zumindest sinnvoll an)

Ich glaub das Teil ist nicht Office-Bestandteil, sondern kommt mit der ODE bzw. VB. Wenn beides nicht auf dem Rechner installiert ist, kannst Du es im Entwurfsmodus nicht einfügen. Zur Laufzeit sollte es aber gehen.

Meine letzte Vermutung ist nun, daß die
Datei COMDLG32.OCX noch weitere DLLs o.Ä.
benötigt. Aber gleich vorweg: An der
gleichnamigen COMDLG32.DLL scheint es
nicht zu hängen, die haben wir schon
probehalber getauscht, ohne Erfolg. Aber
es gibt sicher noch weitere Dateien, die
in Frage kämen, nur welche ?

Die Abhängigkeiten findest Du in der zugehörigen *dep-Datei. Das Teil benötigt aber eigentlich nur CmDlgDE.dll.

Wenn Du nur den OpenFile-Dialog brauchst, dann würd ich das lieber über API lösen, da gibt´s massenweise Beispiele. Dann hast Du das leidige Problem sowieso umgangen.

Uni

Hallo Andre,
Lizenzproblem gesucht unter
http://search.microsoft.com/
gefunden unter
http://support.microsoft.com/support/kb/articles/Q17….

Bin mir ziemlich sicher, dass man sich von Microsoft die neuesten ActiveX-Controls irgendwo downloaden kann … haben sich nur gut versteckt, die Dinger!!

Bis dahin gilt das Motto: Wer suchet … der findet!

greets from MichL (Vienna)

… und noch etwas gefunden:
Unter diesem Links gibts ActiveX Office-Samples zum Downloaden. Dort steht auch folgendes:
IMPORTANT: To use the examples in this workbook, you must install the ActiveX Controls that are included with Microsoft Office 97 Developer Edition. For more information about the versions of these controls, see the R e a d m e . t x t file that is included in the .exe file.

Habs mir „downgeloaded“ und in den readme.txt hineingeguckt und wichtige Infos gefunden:
To make sure the examples in this workbook work properly,
the versions of the ActiveX controls that are shipped with
Microsoft Office 97 Developer Edition must be installed. The
file names and versions are listed in the following table.

File name Version

Comct232.ocx 5.00.3601
Comctl32.ocx 5.00.3601
Comdlg32.ocx 5.00.3601
Mscal.ocx 8.0.0.3432
Msinex.ocx 5.00.3601
Mswinsck.ocx 5.00.3601
Richtx32.ocx 5.00.3601

There are also some supporting files that may affect these controls.
The file names and versions are listed in the following table.

File name Version

Comcat.dll 4.70
Wint351.exe 4.71.0030.1
Axdist.exe 4.71.0030.1
Riched32.dll 4.00.993.4

Jetzt ist es klar, welche Dateien benötigt werden bzw. von einander abhängig sind!!

greets from MichL (Vienna)

Vergessen - hier der Link:
http://support.microsoft.com/support/kb/articles/q25…