Forums Neueste Beiträge
 

VBA-Zugriff auf Objekt VBProject ab Excel 2007 verweigert

18/05/2010 - 09:52 von Stefan Kunze | Report spam
Hallo NG,

ich habe mehrere XLA-Dateien, die beim Öffnen
ein neues Menü erzeugen. Dabei entsteht das Problem,
das bei gleichzeitigem Öffnen mehererer XLA-Dateien,
die Makros mit gleichem Namen enthalten, die Menüs
nicht immer auf die 'richtige' Datei verweisen.

Beispiel:
- Es werden zwei XLA-Dateien geöffnet,
die je ein Menü mit versch. Namen erzeugen
- Jedes dieser Menüs enthàlt den Eintrag
'Dieses Menü entfernen' mit der hinterlegten
'OnAction'-Eigenschaft 'DelMenueAndCloseFile'

Nun tritt das bekannte Problem auf, dass immer nur die Sub
der zuerst geöffneten Datei ausgeführt wird.
Also bei Klick auf das "Zweite" Menü wird die gleichnamige
Procedur der ersten Datei aufgerufen.

Dieses Problem konnte ich bisher gut umgehen, in dem ich
der 'OnAction'-Eigenschaft auch den Namen des unterschiedlich
benannten VBProjects mitgegeben habe,
also 'MyVBProjectName.MyModulName.MyProcName'

Nun habe ich (bzw. ein anderer Nutzer meiner Dateien) Office 2007
und der Zugriff auf das Objekt 'VBProject' wir standadmàßig
deaktiviert. Selbst lesend kann nicht mehr darauf zugegriffen werden.
Der Code "strVbProject = ThisWorkbook.VBProject.Name" erzeugt bereits
einen Laufzeitfehler.

Natürlich kann ich den programmatischen Zugriff auf dieses Objekt
in den Excel-Optionen explizit erlauben, aber wie soll ich
einem Kunden erklàren, dass er wissentlich "die Sicherheit seines
Computer gefàhrden" soll?

Gibt es andere Möglichkeiten, die sicherstellen, dass immer die richtige
Procedur ausgeführt wird, auch wenn die Namen der Proceduren gleich sind?

Vielen Dank
Stefan
 

Lesen sie die antworten

#1 Werner
19/05/2010 - 08:51 | Warnen spam
Hallo Stefan,

hast Du schon probiert, den Pfad in den Einstellungen des
Vertrauensstellungscenters als vertrauenswürdigen Speicherort festzulegen?

Werner

"Stefan Kunze" wrote:

Hallo NG,

ich habe mehrere XLA-Dateien, die beim Öffnen
ein neues Menü erzeugen. Dabei entsteht das Problem,
das bei gleichzeitigem Öffnen mehererer XLA-Dateien,
die Makros mit gleichem Namen enthalten, die Menüs
nicht immer auf die 'richtige' Datei verweisen.

Beispiel:
- Es werden zwei XLA-Dateien geöffnet,
die je ein Menü mit versch. Namen erzeugen
- Jedes dieser Menüs enthàlt den Eintrag
'Dieses Menü entfernen' mit der hinterlegten
'OnAction'-Eigenschaft 'DelMenueAndCloseFile'

Nun tritt das bekannte Problem auf, dass immer nur die Sub
der zuerst geöffneten Datei ausgeführt wird.
Also bei Klick auf das "Zweite" Menü wird die gleichnamige
Procedur der ersten Datei aufgerufen.

Dieses Problem konnte ich bisher gut umgehen, in dem ich
der 'OnAction'-Eigenschaft auch den Namen des unterschiedlich
benannten VBProjects mitgegeben habe,
also 'MyVBProjectName.MyModulName.MyProcName'

Nun habe ich (bzw. ein anderer Nutzer meiner Dateien) Office 2007
und der Zugriff auf das Objekt 'VBProject' wir standadmàßig
deaktiviert. Selbst lesend kann nicht mehr darauf zugegriffen werden.
Der Code "strVbProject = ThisWorkbook.VBProject.Name" erzeugt bereits
einen Laufzeitfehler.

Natürlich kann ich den programmatischen Zugriff auf dieses Objekt
in den Excel-Optionen explizit erlauben, aber wie soll ich
einem Kunden erklàren, dass er wissentlich "die Sicherheit seines
Computer gefàhrden" soll?

Gibt es andere Möglichkeiten, die sicherstellen, dass immer die richtige
Procedur ausgeführt wird, auch wenn die Namen der Proceduren gleich sind?

Vielen Dank
Stefan


.

Ähnliche fragen