Einzelnen Beitrag anzeigen

Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#1

Textbox in Word erstellen

  Alt 12. Nov 2007, 13:03
Hallo,

ich möchte in Word eine Textbox erstellen und sie mit Inhalt füllen.
Leider kann man dies nicht über ein Makro machen. Office XP lässt mich beim Makro-Aufzeichnen keine Textbox erstellen.
Danach hab ich einfach mal mit Shapes probiert, aber es kommt folgende Fehlermeldung:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Word.exe ist eine Exception der Klasse EOleError mit der Meldung 'Die Methode 'Shapes' wird vom Automatisierungsobjekt nicht unterstützt' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------


Ich greife folgendermaßen auf Word zu:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  WordApp, NewDoc, WordTable: OLEVariant;
  iRows, iCols, iGridRows, jGridCols: Integer;
begin
  try
    // Create a Word Instance
    // Word Instanz erzeugen
    WordApp := CreateOleObject('Word.Application');
  except
    // Error...
    // Fehler....
    ShowMessage('Word kann nicht geöffnet werden.');
    Exit;
  end;
 
  // Show Word
  // Word anzeigen
  WordApp.Visible := True;

  // Add a new Doc
  // Neues Dok einfügen
  NewDoc := WordApp.Documents.Add;
  
  WordApp.Selection.MoveDown(wdLine, 1);

  WordApp.Selection.TypeParagraph;

  WordApp.Selection.ParagraphFormat.Alignment:= wdAlignParagraphLeft;

  WordApp.Selection.Shapes.AddTextbox(1,20,10,50,10);
  //shp := Shapes.AddTextbox(1,20,10,50,10);
  //shp.TextFrame.Characters(1, 200).Text := 'Hello';
  //WordApp.Shapes.AddTextBox(1,30,50,200, 100,EmptyParam);

  // Ansicht
  //WordApp.ActiveWindow.ActivePane.View.Type := 3;
  // 0 = wdPortrait, 1 = wdLandScape
  //WordApp.Selection.PageSetup.Orientation := 1;


  WordApp.ActiveDocument.SaveAs(ExtractFilePath(Application.ExeName) + 'test.doc');

  //Close Word
  //WordApp.DisplayAlerts := 0;
  //WordApp.Documents.Item(1).Save;
  //WordApp.Quit;

  // Cleanup...
  WordApp := Unassigned;
  NewDoc := Unassigned;
  WordTable := Unassigned;
end;

Ich weiß echt nicht weiter!
Kann man auch noch anders mit Word kommunizieren?
Weil die ausgeklammerte Lösung mit shp := ... hab ich mir irgendwo abgeschaut, aber Shapes kennt er ja anscheinend doch nicht...

vielen Dank

gruß
Timelesk
  Mit Zitat antworten Zitat