Announcement

Collapse
No announcement yet.

Zugriff auf die Menüleiste von Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf die Menüleiste von Excel

    Tach an alle.
    Ich hatte gestern mal so eine Idee aus der
    eine Frage geworden ist.
    Aber am besten mal alles von Anfang an.
    Gestern bekam ich einen Anruf im Büro
    wo mir ein Mitarbeiter mitteilte, das er eine
    Datei aus dem Jahre 2001 suche.
    Zu dem Zeitpunkt der Datei, gab es diesen
    Mitarbeiter noch nicht, aber diese Datei
    ist mittlerweile auch gefunden.
    Abends habe ich mit meinem Bruder diese
    Situation besprochen. Dabei kam mir
    die Idee, alle Informationen dieser Datei,
    es ist eine Excel Datei, in eine Datenbank
    zu fassen. Die Informationen dieser Datei
    werden von mehreren Benutzern benötigt.
    Deswegen wird diese Datei, trotz Novell
    Netzlaufwerk, von den Usern immer per
    Mail versendet. Was natürlich den Exchange
    Server belastet. Ausserdem tritt durch
    den Versand dieser Mail / Datei das Problem
    auf, das es verschiedene Versionen gibt.
    Was für die User natürlich sehr unpraktisch
    ist, aber so sind die nun mal.
    Mit den Informationen in dieser Datei
    werden meist Auswertungen gemacht,
    weswegen die User wohl am liebsten Excel
    nehmen. Daher hatte ich mir weiter überlegt,
    das dann die Ausgabe der Daten aus der
    Datenbank am besten in Excel erfolgt.
    Herr Kosch hat dazu in seinem Buch
    COM DCOM COM+ ISBN Nr. 3-935042-01-9
    auf der Seite 530 und 531 prima
    beschrieben, wie man Excel aufruft und mit
    Daten befüllt. Was ich allerdings
    noch nirgends wo gefunden habe, ist die
    Möglichkeit, von Delphi aus auf die
    Excel Menüleiste zuzugreifen und so
    Punkte wie speichern, speichern unter
    und senden an zu sperren bzw. deaktivieren.
    Ich möchte verhindern, das die User
    die Daten aus der Datenbank abrufen,
    in Excel dargestellt bekommen, diese
    abspeichern und danach wieder per Mail
    versenden.
    Ist das also möglich, das ich alle
    Features von Excel nutzen kann,
    aber die einfachen Punkte deaktiviere,
    das Excel wirklich nur als Ausgabeprogramm
    dient ??
    Das wäre mal interessant zu Wissen.
    Wenn möglich, dann auch evt. Lösungsansätze.

    M.f.G.

  • #2
    Hallo,

    diese ReadOnly-Eigenschaft lässt sich am einfachsten über <b>TOleContainer</b> umsetzen (alle Menüpunkte aus dem <i>Datei</i>-Menü von Excel sind dann nicht verfügbar). Die Suche nach dieser Zeichenkette liefert hier im FORUM einige Beispiele (für Word) zurück, die analog aber auch für eine XLS-Datei passen sollten.

    Im COM/DCOM/COM+-Buch ist dieses Thema aus Platzgründen im Kapitel 11 nur als PDF-Datei auf der CDROM zu finden

    Comment


    • #3
      Aha. Na, die CD - ROM habe ich aus dem Buch
      noch nicht entfernt. Das Buch / die CD war
      mir bisher zu schade dafür. ;-)
      Werde dies dann wohl doch mal tun müssen.
      Bzw. mich nochmal im Forum auf die Suche
      begeben. Vielen Dank für die Antwort

      Comment


      • #4
        Na klar kann man auch einzelne Menus rauswerfen
        <PRE>
        procedure Menu_DEL;
        var CB:Excel97.MENUBar;
        F_MENU:Excel97.Menu;
        M:Excel97.MenuItem;
        begin
        CB:=xlApp.Menubars[xlWorksheet];
        F_Menu:=CB.Menus[1]; // dass ist 'Datei'
        M:=F_Menu.MenuItems.Item[4] as Excel97.MenuItem; M.delete; // das ist speichern
        M:=F_Menu.MenuItems.Item[5] as Excel97.MenuItem; M.delete; // das ist speichern unter
        end;
        </PRE>
        Zusätzlich kann man auch die entsprechenden Toolbars sperren und bei onclose die Speicherabfrage rausnehmen.<br>
        Hendri

        Comment


        • #5
          Genau so was meinte ich. Habe die CD und
          das Forum durchsucht, leider war genau
          so etwas nicht zu finden.
          In den meisten Beiträgen geht es immer
          nur um das komplette hinzufügen von
          Anwendungen ( meist Microsoft Office ).
          Über die OLE / OLE Automation möglichkeiten.
          Den Zugriff auf Excel hatte ich allerdings,
          für eine andere Anwendung, bereits geschafft.
          So wie das Beispiel aussieht,
          scheint es genau so simpel zu funktionieren
          wie bei der Delphi MenuItem Kompo.
          Ich denke, das ich nun intensiver
          auf der MSDN suchen sollte, wo welche
          Items sind. Um noch das "Senden an" zu
          deaktivieren / raus zu nehmen.
          Wenn ich das Ende des Kommentares sehe,
          erwartet mich wohl noch eine kleine
          Stolperfalle in Form von "OnClose"

          Comment


          • #6
            Also, ich war da wohl gestern etwas voreilig.
            Denn das was Hendrik mir da geschrieben hat
            funktioniert bei mir leider nicht.
            Kann es sein das du die Excel - Kombo
            aus der Registerkarte Server eingesetzt hast ?
            Wenn ich das mache, kann ich einen Teil
            deines Kommentares nachbilden.
            Andernfalls geht nix. Die Variablen
            bekomme ich nicht mal deklariert.
            Auf der MSDN habe ich einige Beispiele für
            die Toolbar gefunden. Und in der Excel / VBA
            Hilfe etwas über CommandBar. Mit dem VBA -
            Editor habe ich es dann geschafft, den
            kompletten Menüpunkt Datei aus zu blenden.
            Dabei ist mir eine weitere Stolperfalle
            aufgefallen. Die Diskette in der Leiste
            darunter bleibt sichtbar und voll
            funktionsfähig. Ich denke, das ich vielleicht
            doch anders herum anfangen sollte.
            Vermutlich mal das, was mir Herr Kosch versucht hat zu sagen. Und zwar per OLE ein leeres Excel starten, und dann nur die Features hinzufügen, die auch wirklich verlangt / gebraucht werden.
            Ansonsten sucht man sich ja einen Wolf,
            bei dem was alles gesperrt werden muss.
            Auch wenn die User manchmal zu blöde sind,
            einen PC ein zu schalten. Aber bei so etwas
            entwickeln die ungemeine Energien.
            Beispiel : Wir haben auf allen PC´s die
            sichtbaren und bekannten Desktop / Systemsteuerungs Funktion deaktiviert und versteckt, unter anderem auch den Punkt Bildschirm Hintergrund. Die Hälfte
            der User hat es trotzdem geschafft ein
            Bild auf Ihren Desktop zu bekommen !

            Comment

            Working...
            X