Excel Steuerelemente vs. Makros
Joshh
- programmiertechnik
Hi,
ich hoffe, dass ich hier mit einer VBA-Frage nicht zu fachfremd unterwegs bin ;-)
Es geht um folgendes:
In Excel (2010) erzeuge ich mittels VBA in einem Tabellenblatt einen Fragebogen mit verschiedenen ActiveX-Steuerelementen (in VBA: OLEObjects).
Das Tabellenblatt wird dann in eine neue Datei (aus Kompatibilitätsgründen im alten .xls-Format) exportiert.
Wenn die exportierte Datei keine Makros enthält, funktioniert alles wie gewünscht: Der Anwender, der den Fragebogen ausfüllen soll, kann die Datei öffnen, bearbeiten, speichern usw.
Wenn ich jedoch ein Makro einbaue, das ein paar Komfortfunktionen bereitstellt, gibt es Schwierigkeiten: Der Anwender bekommt jetzt nach dem Öffnen des Dokuments (je nach Einstellung in Excel) die Nachfrage, ob er Makros erlauben möchte oder nicht. Lässt er die Makros nicht zu, schaltet sich Excel in den Entwurfsmodus und die Steuerelemente können nicht mehr angeklickt, sondern nur noch bearbeitet werden.
Das Ziel ist eigentlich, dass der Anwender je nachdem, ob er Makros ausführen darf, den Fragebogen mit mehr oder weniger Komfort ausfüllen kann.
Hat jemand eine Idee?
Grüße,
Josh
Das Ziel ist eigentlich, dass der Anwender je nachdem, ob er Makros ausführen darf, den Fragebogen mit mehr oder weniger Komfort ausfüllen kann.
Hi Joshh,
dann entziehe, bzw. berechtige die Nutzer entsprechend.
Wenn ein Nutzer keine Makros verwenden darf, stelle die Makro-Sicherheitsstufe seiner Excel-Installation auf "sehr hoch". Der Nutzer erhält keine Rückfrage mehr und die Makros sind inaktiv. Die Nutzer, welche Makros nutzen dürfen, erhalten die Sicherheitsstufe "hoch" und signierte Makros aus vertrauenswürdigen Quellen stehen ohne Rückfrage zur Verfügung.
Als Notlösung bliebe auch die Sicherheitsstufe "niedrig". Dabei werden sämtliche Makros ohne Rückfrage zur Verfügung gestellt (Sicherheitsrisiko bei unbekannten Quellen).
Gruß Fabulit
Hi,
Das Ziel ist eigentlich, dass der Anwender je nachdem, ob er Makros ausführen darf, den Fragebogen mit mehr oder weniger Komfort ausfüllen kann.
dann entziehe, bzw. berechtige die Nutzer entsprechend.
Danke für deine Antwort. Wenn ich Einfluss auf die Einstellungen der Nutzer hätte, dann wäre das alles kein Problem ;-)
Die Excel-Dateien sollen an die entsprechenden Personen versendet werden und auf die Excel-Einstellungen dort (meistens Arbeitsplatz) habe ich (und ggfs. auch die Nutzer selbst) keinen Zugriff.
Die Frage ist daher eher: Warum haben die Einschränkungen der Makros plötzlich Einfluss auf die Steuerelemente, wenn diese auch völlig ohne Makros ihren Dienst tun?
Grüße,
Josh
Die Frage ist daher eher: Warum haben die Einschränkungen der Makros plötzlich Einfluss auf die Steuerelemente, wenn diese auch völlig ohne Makros ihren Dienst tun?
Bedenke den Unterschied zwischen Formular-Steuerelementen und ActiveX-Steuerelementen. Denn nicht initialisierte ActiveX-Steuerelemente können nicht in 2003 geöffnet werden. In diesem Fall wird die Datei im schreibgeschützen Modus geöffnet und die ActiveX-Steuerelemente sind nicht mehr klickbar.
Ich kenne mich aber mit den ActiveX-Sachen nicht aus, daher kann ich dir keinen konkreten Rat geben.
Gruß Fabulit
Hi,
Bedenke den Unterschied zwischen Formular-Steuerelementen und ActiveX-Steuerelementen. Denn nicht initialisierte ActiveX-Steuerelemente können nicht in 2003 geöffnet werden. In diesem Fall wird die Datei im schreibgeschützen Modus geöffnet und die ActiveX-Steuerelemente sind nicht mehr klickbar.
Danke für den Hinweis. Was meinst du mit "nicht initialisiert"?
Bisher hatte ich noch keine Gelegenheit, mit Excel 2003 zu testen. Ich hatte angenommen, dass die ActiveX-Elemente keine Schwierigkeiten machen, seit sie in dem (herkömmlichen) .xls-Dokument (aber unter Excel 2010) funktioniert haben. Da muss ich wohl doch nochmal die alte Version herauskramen und installieren...
Löst aber immer noch nicht den Konflikt, wenn Makros im Dokument vorkommen.
Man kann sich selbst ganz leicht ein kleines Beispiel zum besseren Verständnis bauen:
--> Die Checkbox funktioniert wie gewünscht.
Wenn man jetzt ein kleines Makro einfügt, z. B.
Sub Test()
Debug.Print "Hallo"
End Sub
und die Datei wieder speichert, kommt nach dem erneuten Öffnen die Abfrage nach Makros. Verneint man diese, kann man mit dem Steuerelement nichts mehr anfangen...
Grüße,
Josh