Help

Status
Niet open voor verdere reacties.

Chippy4444

Gebruiker
Lid geworden
5 nov 2000
Berichten
98
Wie helpt mij met VBA

Hallo helpers van Nederland.

Ik had het idee om de auto correctie functie in Word te gebruiken als vertaal hulp.
Ik heb dit geprobeerd door handmatig een aantal Nederlandse en Engelse woorden in de auto correctie functie te plaatsen en daarna de taal onder in het scherm in te stellen op Engels (Groot-Brittannië).
Het gevolg hiervan is inderdaad dat wanneer ik ben Nederlands woord wat ik heb ingevoerd in auto correctie automatisch wordt vervangen door het Engelse woord.

Tot zover is het idee geslaagd.

Nu had ik het idee gekregen om in VBA een programma te schrijven wat mij kan helpen om op een eenvoudige manier veel
(Nederlandse/Engelse) woorden toe te voegen aan de auto correctie lijst.

Nu heb ik wat ervaring met een wat oudere programmeertaal (Quick Basic), en een heel klein beetje van visual Basic.
Maar de nieuwe instructies in VBA m.b.t. Word zijn voor mij onbekend.

Ik heb met de macro recorder een aantal handelingen opgenomen die ik na mijn inziens nodig had om in een dergelijk programma te gebruiken.

Maar het programma doet nog niet helemaal wat ik wil, mijn vraag is dan ook of er iemand is die wat meer ervaring heeft met VBA en er voor mij evenaar wil kijken wat ik nu precies fout doe.


Sub Vertaal()
'
'
Dim WD1 As String
Dim WD2 As String
Dim proef As String

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "*"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
wordenToevoegen
Selection.Find.Execute Replace:=wdReplaceAll


End Sub



Sub wordenToevoegen()

Selection.Find.Execute
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
WD1 = Selection.Text
WD1 = Trim(LCase(WD1))

Selection.Find.Execute
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
WD2 = Selection.Text
WD2 = Trim(LCase(WD2))

AutoCorrect.Entries.Add WD1, WD2
With AutoCorrect
.CorrectInitialCaps = True
.CorrectSentenceCaps = False
.CorrectDays = True
.CorrectCapsLock = True
.ReplaceText = True
.ReplaceTextFromSpellingChecker = True
.CorrectKeyboardSetting = False
.DisplayAutoCorrectOptions = True
.CorrectTableCells = True
End With


End Sub


De bedoeling van het programma is om te zoeken naar een * en de twee woorden die rechts van het sterretje staan toe te voegen aan de auto correctie lijst. (* woord1 woord2)....

Op het moment dat hij het sterretje gevonden heeft moet hij het vervangen voor een Spatie, en de twee woorden aan de rechterkant van het sterretje toevoegen aan de auto correctie lijst.

En vervolgens moet hij verder zoeken in het document of dit sterretje nog vaker voorkomt in het document.
Ik wilde het sterretje vervangen voor een spatie om te voorkomen dat de woorden die naast het sterretje staan opnieuw aan de lijst worden toegevoegd wanneer het programma opnieuw gestart wordt, en om te voorkomen dat het zoeken naar het sterretje in een lus terechtkomt.

Is er iemand die het programma voor mij zo kan aanpassen dat het wel werkt.

Volgens mij ben ik al een heel eind op weg.

Bij voorbaat dank...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan