Announcement

Collapse
No announcement yet.

Excel-Kommentare aus Delphi

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

  • Excel-Kommentare aus Delphi

    Hallo,

    der Befehl
    Cells(Zeile,Spalte).Comment := " Excel-Kommentar "
    wird leider vom Compiler mit ungültiger Bezeichner abgelehnt.

    Was mache ich falsch ??

  • #2
    Hallo Gerhard<br> <br>

    hier ist ein Auszug, der dir vielleicht hilft <br><br>
    var Excel:Variant;<br>
    Book:Variant;<br>
    Sheet:Variant;<br> <br>
    <pre>
    excel:= CreateOleObject('Excel.Application');
    book:= excel.workbooks.Open[FileName:= Datei, Password:= Excel_Psswd,
    ReadOnly:= True, Notify:= False, AddToMru:= False];

    book.Sheets['Person'].Visible:= -1;
    book.Sheets['Person'].Select;
    sheet:= book.ActiveSheet;

    Sheet.Cells[11, 1].NumberFormat:= '';
    Sheet.Cells[11, 1].WrapText:= True;
    Sheet.Cells[11, 1].VerticalAlignment:= xlTop;

    </pre>
    du musst in Delphi die [] Klammern benutzen damit es funktionier

    Comment


    • #3
      Danke Andreas,
      das löst das Problem nicht.
      Comments sind in Excel nochmals eigenständige Objekte.
      Für das ansprechen fehlt mir die richtige Syntax.
      MfG Gerhar

      Comment


      • #4
        Hallo Gerhard,

        hier ein Unit die funktioniert und ein Kommentar hinzufügt<br>
        <pre>

        unit Unit1;

        interface

        uses
        Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
        StdCtrls;

        type
        TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        private
        { Private-Deklarationen }
        public
        { Public-Deklarationen }
        end;

        var
        Form1: TForm1;

        implementation

        {$R *.DFM}

        uses comobj;

        procedure TForm1.Button1Click(Sender: TObject);
        var excel:Variant;
        book:Variant;
        sheet:Variant;
        begin
        excel:= CreateOleObject('Excel.Application');
        book:= excel.workbooks.add;
        sheet:= book.Sheets['Tabelle2'];
        sheet.select;
        sheet.Range['D8'].AddComment;
        // sheet.Range['D8'].Comment.Visible:= False;
        sheet.Range['D8'].Comment.Text (Text:='Andreas:' + Chr(10) + 'ein Kommentar');
        sheet.Range['D8'].Comment.Visible:= True;
        excel.visible:= true;
        end;

        end.

        </pre&gt

        Comment


        • #5
          Danke Andreas,
          leider verursacht der Befehl Addcomment in meinem Programm immer den
          OLE-Fehler 'OLE800A03EC' obwohl der Kommentar bei beiden Versionen anschließend im Excelblatt sichtbar ist.

          Version 1
          // Sheet.Cells.Item[8,8].AddComment(cTestString);
          //---------------------------------------------------
          Version 2
          Sheet.Cells.Item[8,8].AddComment;
          Sheet.Cells.Item[8,8].Comment.Visible := False;
          Sheet.Cells.Item[8,8].Comment.Text (Text:= cTestString);
          Sheet.Cells.Item[8,8].Comment.Visible := True;
          //---------------------------------------------------

          Mfg Gerhar

          Comment


          • #6
            Hallo Gerhard,<br> <br>

            der Fehler tritt auf (bei mir zumindest), wenn du versuchst ein Kommentar in einer Zelle<br> einzufügen, in der bereits ein Kommentar ist. <br> Dann brauchst du nur den Text des vorhandenen Kommentars ändern.

            <br>
            Wenn nicht, Versuch doch mal in VBA ein ExcelSheet als OleObjekt anzulegen/öffnen <br>und Kommentare einzufügen vielleicht gibt es einen anderen Grund für den Fehler

            Comment

            Working...
            X