Jeg leser engelsk fagstoff på skjermen og har fått laget en makro som lager
en ordliste over de engelske ordene som jeg må ha hjelp til å oversette. Den
måten jeg gjør det på er å starte makroen der jeg skriver inn det engelske
ordet og den norske oversettelsen. Ordlista legges på slutten av dokumentet.
Hvert ord ligger som et bokmerke, og det lages en hyperlink mot bokmerket.
Dersom det samme engelske ordet dukker opp flere ganger, skal også disse
merkes og linkes mot det samme bokmerket.
Problemet vi støtte på med å lage en loop som merker alle tilfellene av
samme ord, er å få stoppet denne loopen når den er kommet til bunns. Vi har
derfor laget makroen på en annen måte slik at jeg manuelt bekrefter om jeg
vil la makroen gå videre og søke etter det samme ordet om igjen. Denne
løsningen er imidlertid ikke helt god.
Løsningen jeg ønsker er følgende :
1) - at makroen "husker" linjenr og posisjon på hvor aktuelt bokmerke settes
inn
2) - at makroen forsatt går i loop, men at den stopper automatisk når den
søker opp linjenr og posisjon i pkt. 1
----------------------------------------------------------------------------
-
Sub Oversettelser()
On Error GoTo Err_Oversettelser
Dim strEngelskOrd As String
Dim strNorskOrd As String
Dim strMeldingstittel As String
strMeldingstittel = "Oversettelse Engelsk ---> Norsk"
strEngelskOrd = InputBox("Skriv inn engelsk ord", strMeldingstittel)
strNorskOrd = InputBox("Skriv inn det norske ordet for " & strEngelskOrd
& ":", strMeldingstittel)
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
With ActiveDocument.Bookmarks
.Add strEngelskOrd
End With
Selection.TypeText (strEngelskOrd & " = " & strNorskOrd)
Selection.TypeParagraph
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1"
Selection.Find.ClearFormatting
With Selection.Find
.Text = " " & strEngelskOrd
End With
LeggTilHyperlink:
Selection.Find.Execute
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="", _
SubAddress:=strEngelskOrd
If MsgBox("Vil du søke etter flere forekomster?", vbQuestion + vbYesNo,
strMeldingstittel) = vbYes Then
GoTo LeggTilHyperlink:
End If
Exit_Oversettelser:
Exit Sub
Err_Oversettelser:
MsgBox "Feilmelding " & Err.Number & vbCrLf & Err.Description
GoTo Exit_Oversettelser
End Sub
|