Word automation mit Word_2K_SRVR



  • Ich bin am verzweifeln.
    Ich möchte aus meiner Applikation heraus ein Word Dokument erstellen. Dabei bin ich auf die Komponenten TWordApplication, TWordDocument etc. gestoßen.
    Scheinbar arbeitet niemand damit, sonst wären bestimmt irgendwo Beispiele verfügbar. Nachdem ich nun schon Text ausgeben und formatieren kann wollte ich eine Tabelle einfügen.

    [code]
    	// Dokument öffen
    	WdApp->Documents->Add(Template, NewTemplate, myDocTyp, isVisible);
    	WdDoc->ConnectTo(WdApp->Documents->Item(ItemIndex));
    	// Seite einrichten
    	WdDoc->PageSetup->LeftMargin   = WdApp->MillimetersToPoints(25);
    	WdDoc->PageSetup->RightMargin  = WdApp->MillimetersToPoints(25);
    	WdDoc->PageSetup->TopMargin    = WdApp->MillimetersToPoints(20);
    	WdDoc->PageSetup->BottomMargin = WdApp->MillimetersToPoints(20);
    
    	// Überschrift zentriert
    	WdApp->Selection->Font->Bold = (int) true;
    	WdApp->Selection->Paragraphs->Alignment = wdAlignRowCenter;
    	WdApp->Selection->Font->Size = 18;
    	WdApp->Selection->TypeText((Variant) ("Maschinenoptionen Software\n"));
    
    	// 2. Überschrift etwas kleiner
    	WdApp->Selection->Font->Bold = (int) false;
    	WdApp->Selection->Font->Size = 14;
    	WdApp->Selection->Paragraphs->Alignment = wdAlignRowCenter;
    	WdApp->Selection->TypeText((Variant) ("Elektronikentwicklung\n"));
    
    	// Absatz mit speziellen Tabulatoren
    	Leader    = wdTabLeaderSpaces;
    	Alignment = wdAlignTabLeft;
    	WdApp->Selection->Paragraphs->TabStops->ClearAll();
    	WdApp->Selection->Paragraphs->TabStops->Add(WdApp->MillimetersToPoints(20), Alignment,Leader);
    	WdApp->Selection->Paragraphs->TabStops->Add(WdApp->MillimetersToPoints(90),Alignment,Leader);
    	WdApp->Selection->Paragraphs->TabStops->Add(WdApp->MillimetersToPoints(110),Alignment,Leader);
    	WdApp->Selection->Font->Bold = (int) false;
    	WdApp->Selection->Font->Size = 10;
    	WdApp->Selection->Paragraphs->Alignment = wdAlignParagraphLeft;
    	WdApp->Selection->TypeText((Variant) (AnsiString("|Kunde:\t") + "|Überschrift" +"\t|Komm-Nr.:\t" + "|991234" + "\n"));
    
    	// so, nun soll hier eine Tabelle von 3x3 Zellen eingefügt werden
    	WdDoc->Tables->Add(WdApp->Selection->Range, (long) 3, (long) 3, wdWord8TableBehavior, wdAutoFitFixed);
    	WdDoc->Tables->Add(WdDoc->Content, 3, 3, wdWord8TableBehavior, wdAutoFitFixed);
    

    [/code]

    Beim einfügeversuch erscheint die Meldung:
    HRCHECK: 'this->Add(Range, NumPows, NumColumns, DefaultTableBehavior, AutoFitBehavior, (Word_2K::Table**)&prop)': An den Stub wurde ein Nullzeiger übergeben.

    Wo kommt dieser 6. Parameter her ? Was ist ein Stub ?
    Geht das alles viel einfacher ?

    Natürlich ziehe ich auch die VBAWRD9.CHM Hilfe zu Rate. Aber die ist wohl nur was für Insider, nicht für jemanden, der sich hier einarbeiten muss.
    Hoffentlich hat jemand hier Hinweise für mich.
    Vielen Dank


Anmelden zum Antworten