Toon posts:

[OL 2003 + WORD] Tekst uit word naar variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo;

Ik krijg een groot aantal uniforme word-documenten toegemaild. Ik wil data uit deze documenten automatisch uitlezen:

Onderstaande macro voer ik uit in outlook nadat ik de bewuste berichten heb geselecteerd. Nu print deze ze uit en vervolgens zit ik de data over te typen naar een tabel.

Hoe moet ik de volgende code aanpassen om het document te doorzoeken op het woord "Ref. " en alles op de zelfde regel te plaatsen in een variabele. Als het in een variabele staat, kan ik hem wel weer laten wegschrijven in een database

In een actief document lukt het me met find alleen niet met het wordobject.

Alvast bedankt voor een duwtje in de goede richting

Dim myOlApp As Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim Wordobj As Object
Dim Doc_Loc As String 'Lokatie voor bestanden
Dim x As Integer 'Teller
Dim Doc_Name As String 'Bestandsnaam van bijlage
Dim Doc_ext As String 'Geselecteerde extensie

Set Wordobj = CreateObject("Word.Application")
Set myOlExp = ActiveExplorer
Set myOlSel = myOlExp.Selection
Doc_Loc = "c:\" 'Lokatie voor bestanden
Doc_ext = "doc"

For x = 1 To myOlSel.Count
Doc_Name = Doc_Loc & myOlSel.Item(x).Attachments.Item(1).DisplayName
If myOlSel.Item(x).Attachments.Count <> 0 And _
Right(Doc_Name, 3) = Doc_ext Then
myOlSel.Item(x).Attachments.Item(1).SaveAsFile (Doc_Name)
Wordobj.Documents.Open Doc_Name
Wordobj.Documents.Activate
wordobj.PrintOut Background:=False
Wordobj.Documents.Close
End If
Next x
End Sub

Verwijderd

je kan dit met de findmethode doen of gewoon de paragraafverzameling doorlopen. eerst eens even kijken met de macrorecorder in word, daarna help (f1) en objectbrowser (f2) bekijken om te zien in welk objectniveau je de gewenste methode terugvindt, zodat je ze correct kan koppelen aan de wordobj instantie die je al hebt. ik zou gewoon de paragraafverzameling doorlopen
Visual Basic:
1
2
3
4
5
6
7
8
9
'ongetest
dim RefParagraaf as string
dim CurParagraaf as paragraph

for each curparagraaf in wordobj.activedocument.paragraphs
  if instr(curparagraaf.range.text,"Ref. ") then
    refparagraaf=(refparagraaf & curparagraaf.range.text)
  end if
next

Verwijderd

Topicstarter
De code werkt.
-De tip om met de paragraph te werken is veel beter dan met find.
-Ik had de verwijzing naar word 11 niet specifiek aangezet in de verwijzingen. Wel naar office 11. Wellicht kan ik nu de andere routines ook vereenvoudigen, omdat er ineens veel meer functies beschikbaar komen. Ga ik nu eens mee puzzelen
-Die functie met F2 had ik gevonden, ik zit alleen vaak te puzzelen om het van 'activesession' te vertalen naar een object. Maar nu wordt het weer een stuk duidelijker.

Geweldig bedankt.