| Autor |
Beitrag |
lexmy3
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Di 14.02.06 09:29
Hallo, nach einem Tip habe ich dieses Makro, welches ich ins Delphi übersetzen muss.
Kann mir einer eventuell dabei helfen wie gehe ich beim Übersetzen vor??
(Habe Delphi 5 mit Word 2000)
Makro in Word:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| Sub Makro2() ' ' Makro2 Makro ' Makro aufgezeichnet am 13.02.2006 von Lexmy3 ' Documents.Add Template:= _ "C:\Word\ReferenzReport.dot" _ , NewTemplate:=False, DocumentType:=0 End Sub |
wäre echt Supper!!!
mfg
Lexmy3
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Di 14.02.06 14:15
Ok. du willst also Word fernsteuern WORD
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 11:25
Hallo,
Also ich habe bis jetzt alles Mögliche von meiner Seite ausprobiert, jedoch hatte ich dabei kein Glück.
kann mir einer nen Anstoss geben?
hier nochmal der Code in VB:
Documents.Add Template:= _
"C:\Word\ReferenzReport.dot" _
, NewTemplate:=False, DocumentType:=0
mfg
Lexmy3
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 11:31
Fast genauso: (Unter Verwendung der Office-Komponenetn von Delphi)
Delphi-Quelltext 1:
| WordApplication.Documents.Add( 'C:\Word\ReferenzReport.dot', False, 0); |
_________________ Markus Kinzler.
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 24.02.06 11:32
Vielleicht hift Dir das auch weiter: www.dsdt.info/tipps/?id=610
Lg Martin
_________________ Ein Nutzer der Ecke
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 12:03
mkinzler[/user]"]Fast genauso: (Unter Verwendung der Office-Komponenetn von Delphi)
WordApplication.Documents.Add( 'C:\Word\ReferenzReport.dot', False, 0);[/quote]
hey, danke für eure Reaktion
Habe diesen Fehler:
[Fehler] Unit10.pas(113): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
mit dem Code: Delphi-Quelltext 1: 2: 3: 4:
| WordApplication1.Connect; WordApplication1.Documents.Add( 'C:\Word\ReferenzReport1.dot', False, 0); WordDocument1.ConnectTo(WordApplication1.ActiveDocument); |
Ich verstehe die Meldung nicht
mfg
Lexmy3
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 12:25
Ok, jetzt habe ich es so gemacht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var Word:Variant; begin Word.Documents.Add( 'C:\Word\ReferenzReport1.dot', False, 0); end; end. |
jedoch tritt eine Exeption auf: ????Variante refrenziert kein Automatisierungsobjekt????
Was mache ich denn da?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 12:42
_________________ Markus Kinzler.
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 13:02
 Hier der ganze Code, welcher jedoch eine Meldung bringt: Automatisierungsobject akzeptiert keine Documents Methode
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Word97, OleServer,ComObj,ActiveX;
type TForm1 = class(TForm) WordApplication1: TWordApplication; WordDocument1: TWordDocument; Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); var Word:OleVariant; begin Word := CreateOleObject( 'Word.Basic'); Word.Documents.AddOld( 'C:\Word\ReferenzReport1.dot', False, 0,EmptyParam); end;
end. |
Zuletzt bearbeitet von lexmy3 am Fr 24.02.06 13:13, insgesamt 1-mal bearbeitet
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 13:05
Auch bei der frühen Bindung muß zuesrst eien Verbindung zu Wor aufgebaut werden:
Delphi-Quelltext 1:
| WordApplication1.Connect; |
bevor man Word automatisieren kann.
_________________ Markus Kinzler.
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Fr 24.02.06 13:05
Hast du mkinzlers Post nicht gelesen  ?
mkinzler hat folgendes geschrieben: | | Die nun von dir gewählte Variante verwendet späte Bindung, deshalb mußt du erst die Verbindung zu Word aufbauen. [..] |
AXMD
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 13:26
Hey, aber trotzallem wird diese methode nicht akzeptiert????
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var Word:Variant; begin
WordApplication1.Connect; WordApplication1. Visible :=True; Word := CreateOleObject( 'Word.Basic'); Word.Documents.Add( 'C:\Word\ReferenzReport1.dot', False, 0,EmptyParam); end;
end. |
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 13:31
Hey lexmy3 du solltest dich mal für eine Methode entscheiden fruhe oder späte Bindung.
also entweder so, als späte Bindung:
Delphi-Quelltext 1: 2:
| Word := CreateOleObject( 'Word.Basic'); Word.Documents.Add( 'C:\Word\ReferenzReport1.dot', False, 0,EmptyParam); |
oder so als frühe Bindung:
Delphi-Quelltext 1: 2: 3:
| WordApplication1.Connect; WordApplication1.Visible :=True; WordApplication1.Documents.Add( 'C:\Word\ReferenzReport1.dot', False, 0,EmptyParam); |
In beiden Fällen muß zuerst eine Verbindung zu Word aufgebaut werden.
_________________ Markus Kinzler.
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 13:49
Aha Ok habe mich dann doch für die Frühe Methode entschieden.
Jedoch wider eine Meldung:
| Zitat: | | [Fehler] Unit1.pas(33): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen |
Bin am verzweifeln Kein guter Tag heute!!!
mfg
Lexmy3
Moderiert von Tino: Quote-Tags hinzugefügt.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 13:54
Ersetze mal alle, bis auf den ersten Parameter durch EmptyParam, um zu erkennen welcher paramter gemeint ist die Paramterliste ist:
var Template: OleVariant, var NewTemplate: OleVariant,
var DocumentType: OleVariant, Visible: OleVariant
_________________ Markus Kinzler.
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 14:47
mkinzler hat folgendes geschrieben: | Ersetze mal alle, bis auf den ersten Parameter durch EmptyParam, um zu erkennen welcher paramter gemeint ist die Paramterliste ist:
var Template: OleVariant, var NewTemplate: OleVariant,
var DocumentType: OleVariant, Visible: OleVariant |
Also ich weiß leider nicht ganz was ich mit der Param.Liste tun soll!
Aber es wird definitiv der Pfad nicht akzeptiert.
Denn So geht ein neues Dokument auf aber nicht nach Pfad.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); begin WordApplication1.Connect; WordApplication1.Visible :=True; WordApplication1.Documents.Add( 'C:\WordEnglish\ReferenzReport1.dot', EmptyParam);
end; end. |
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 24.02.06 14:51
Aber die Vorlage ReferenzReport1.dot existiert im Verzeichnis c:\WordEnglish?
Ich habe das ganze mal getestet (allerdings mit Word2000) hier hat es funktioniert, auch ohne die EmptyParams.
_________________ Markus Kinzler.
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 24.02.06 14:52
Kann es sein, das er deinen Pfad als Variable haben will?
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 15:03
digi_c hat folgendes geschrieben: | | Kann es sein, das er deinen Pfad als Variable haben will? |
Oh ja diese Pfad existiert ohne Zweifel.
Ich glaube du hast Recht so geht es bis jetzt!!!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var Template: OleVariant; begin Template:=('C:\WordEnglish\ReferenzReport1.dot'); WordApplication1.Connect; WordApplication1.Visible :=True; WordApplication1.Documents.Add(EmptyParam, EmptyParam); WordApplication1.Documents.Add( Template, EmptyParam);
end; |
|
|
lexmy3 
      
Beiträge: 140
WIN 2000 Prof. + Office 2000
Delphi 5 Enterprise
|
Verfasst: Fr 24.02.06 15:25
Super Leute und es lohnt sich doch.
War ein langer Kampf mit Einsatz und Rat
Danke an alle
mfg
Lexmy3
|
|