Avatar billede tommypedersen Nybegynder
10. august 2002 - 08:23 Der er 11 kommentarer og
1 løsning

"Fjernstyre" Word

Der der andre måder at fjernstyre Word (og Excel) på end via DDE.
Jeg forestiller mig at man opretter et dokument - definerer nogle tekstområder mm. (ingen macroer) - og gemmer dokumentet.
Via et andet program eller (genereret) scriptfil vil jeg så gerne kunne aktivere dokumentet og udfylde felterne, samt udskrive dokumentet eller redigere videre på det.
Jeg ved godt at man via VB script kan lave en importkørsel i selve dokumentet, men jeg vil hellere have at dokumentet er så simpelt som muligt.

/Tommy
Avatar billede mugs Novice
10. august 2002 - 08:28 #1
Jeg har et eksempel i Access97, hvor du har defineret bogmærker i Word. Selva data ligger i en Access97 db, herfra kan du så via VBA sende data til Word og gemme dokumentet.

Senere kan du finde posten i Access, og ved en kommandoknap, finde det word dokument der hører til posten.

Læg din e-mail hvis du vil have den. Men det skal være nu, idet jeg er på vej til arbejde, ellers er jeg først hjemme ved 19- tiden.
Avatar billede tommypedersen Nybegynder
10. august 2002 - 08:38 #2
tp@designtech.dk
Jeg kigger på det - tak
Avatar billede kol Nybegynder
10. august 2002 - 11:01 #3
Hej MUGS!

Det lyder spændende. Hvis du vil, så vil jeg meget gerne have sendt eksemplet også.
Det lyder, som det er ideelt til brug i min lille forening til udsendelse af medlemsbreve, girokort mv.

På forhånd tak.

Hilsen KOL  kol@gvdnet.dk
Avatar billede tommypedersen Nybegynder
10. august 2002 - 14:54 #4
Forstil jer følgende:

Jeg udlæser følgende rapport/tekstfil fra vores ERP system:
-------------------------
>Header1
Fupfirma
Fupvej 1
9999 Fuppestrup
>Header2
Dato;10.08.2002
Faktura;10000
>Content1
2.00;Gafler;5.00;10.00
5.00;Knive;2.00;10.00
>Footer1
20.00;5.00;25.00
----------------------------
>xxx er tags
Herefter propper jeg tekstfilen igennem et program der kan indsætte teksterne i et Worddokument og udskrive dem.
Jeg kan godt selv lave programmet i Builder++ men hvilken snitflade er bedst at bruge i word/excel
/Tommy
Avatar billede rvm Nybegynder
12. august 2002 - 07:28 #5
Denne makro ligger i Access og henter den post jeg står i over i Word og indsætter oplysningerne i formularfelter i en skabelone, der vælges via "Filer Ny" dialogboksen:

Public WordObj As Object

Sub KørWord()

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Dim sti As String '

'Spørger om der skal skrives et brev
Msg = "Vil du udskrive et brev"    ' Define message.
Style = vbYesNo + vbDefaultButton2    ' Define buttons.
Title = "Udskriv fra Word"    ' Define title.

Response = MsgBox(Msg, Style, Title)
If Response = vbNo Then
    Exit Sub
Else
    'hvis der skal skrives et brev
'    Dim WordObj As Object
    Set WordObj = CreateObject("Word.Application")

    WordObj.Visible = True

    sti = "C:\Documents and Settings\Dokumenter\"
 
    On Error Resume Next
    WordObj.ChangeFileOpenDirectory (sti)
   
    'Hvis stien ikke findes
    If Err Then
        sti = "c:\"
        WordObj.ChangeFileOpenDirectory (sti)
    End If
   
    'Håndtering af om der er valgt et brev
    SStreng = "*.dot"
    With WordObj.Dialogs(wdDialogFileOpen)
        .Name = SStreng
        .Show
        dlgAnswer = .Name
    End With
   
   
    'Hvis der er valgt et brev**********************************************
    If dlgAnswer <> SStreng Then
        Indsæt "bmkFornavn", Form_frmKunde.Fornavn
        Indsæt "bmkEfternavn", Form_frmKunde.Efternavn
        Indsæt "bmkAdresse", Form_frmKunde.Adresse
        Indsæt "bmkPostnr", Form_frmKunde.Postnr
        Indsæt "bmkBy", Form_frmKunde.Bynavn
        Indsæt "bmkNavn", Form_frmKunde.Fornavn
       
    'Hvis der ikke er valgt et brev
    ElseIf dlgAnswer = SStreng Then
        WordObj.Quit
        Set WordObj = Nothing
        Exit Sub
    End If
End If
End Sub
Sub Indsæt(Bogmærke As String, Indhold As String)
    If WordObj.ActiveDocument.Bookmarks.Exists(Bogmærke) = True Then
        WordObj.ActiveDocument.FormFields(Bogmærke).Result = Indhold
    End If
End Sub
Avatar billede tommypedersen Nybegynder
12. august 2002 - 07:55 #6
Ja kodeordet er COM - desværre ikke særligt godt beskrevet i Borlands hjælpetekster. Jeg har på samme måde fået fat i Word og kan godt indsætte tekster i tabeller og tekstruder via bogmærker.
Jeg har stadig følgende problem;
Sætter jeg et bogmærke i en tekstboks kan jeg ikke hoppe til den via GOTO (tekstrude virker OK)

f.eks.
  WordApplication1->Selection->GoTo(OleVariant wdGoToBookmark),EmptyParam,EmptyParam,
  OleVariant(StringToOleStr("Hoved1")));
  WordApplication1->Selection->TypeText(StringToOleStr("Dette er en test"));

Hvis hoved1 står i en tekstboks får jeg fejl.

Har tabeller, tekstbokse mm. ikke et indexnummer eller feltnummer man kan benytte i stedet for bogmærker?

Jeg kan se at formularfelter aut. får en betegnelse!

Tænk for 2 dage siden anede jeg ikke hvad COM blev brugt til!
//Tommy
Avatar billede rvm Nybegynder
12. august 2002 - 08:19 #7
Bogmærker i en tekstboks kan ikke tilgåes før tekstboksen er åben, hvorimod bogmærker i en tekstrude kan tilgåes direkte.

Her er lidt kodeeksempler til teksbokse:

Tæller antallet af teksbokse:
svar = ActiveDocument.Shapes.Count

Finder navnene på de enkelte tekstbokse:
For Each sh In ActiveDocument.Shapes
    MsgBox sh.Name
Next

Vælger en tekstboks ud fra navn:
ActiveDocument.Shapes.Item(1).Select
Avatar billede tommypedersen Nybegynder
12. august 2002 - 08:38 #8
Hvor er det dokumenteret ? (MSDN?)
//Tommy
Avatar billede rvm Nybegynder
12. august 2002 - 08:47 #9
I Words VBA hjælp (når du har åbnet VBA miljøet i Word)
Avatar billede tommypedersen Nybegynder
13. august 2002 - 18:38 #10
Tak for hjælpen - jeg er begyndt at udvikle på en parser der kan fjernstyre word via COM og det ser lovende ud!
//Tommy
Avatar billede rvm Nybegynder
13. august 2002 - 21:49 #11
Takker for point *S*
Avatar billede tommypedersen Nybegynder
13. august 2002 - 22:46 #12
Objectbrowseren i VBA er ret fed, særligt søgefunktionen det er lidt genialt! Sommetider er det lidt ærgeligt at man kun kan programmere i C/C++ hm... - men jeg har dog brugt WS (Windows Script) lidt så jeg bliver nok bedre med tiden. Det er for øvrigt ret sjovt at skrive DIM og GOTO igen, det er vist 20 år siden jeg sidst brugte det på min Commodore 64 med båndstation - tænk at man for 20 år siden kunne få programmer på en musikkassette... Hvor mange 60 minutters musikkassetter skal der mon til en Office XP - nej det dur vist ikke så skal CODA bare have afgift af det OGSÅ.

Tak til alle i andre på Eksperten der gør eksperten til et værktøj og levested for bl.a. os der til stadighed prøver at følge med...
//Tommy
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester