Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Word VBA Zeile zum oberen Rand scrollen

  Alt 29. Jun 2023, 16:54
@HolgerX, @Ralf,
Danke funktioniert.
Code:
' Aktuelle Zeile an oberen Rand scrollen
' Das Caret steht am Anfang der ersten Zeile unter der Seitenüberschrift
Sub ScrollToTop()
   Dim N As Long
   N = 0
   'Do While (N < 50) And (Asc(Selection.Characters.Last) <> 12) ' N<50, falls kein vbFormFeed gefunden wird
   Do While (N < 50) And (Selection.Characters.Last <> vbFormFeed) ' N<50, falls kein vbFormFeed gefunden wird
      Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
      N = N + 1
   Loop
   ActiveWindow.ScrollIntoView Selection.Range, True
   Selection.MoveUp Unit:=wdLine, Count:=1 ' In die Seitenüberschrift
   Selection.MoveDown Unit:=wdLine, Count:=1
End Sub
@Jumpy
Das ist die optimale Lösung. So einfach, muss man erstmal drauf kommen.
Code:
' Springt zum Topic mit der Id S
Sub JumpToTopic(S As String)
   Dim FN As Footnote, EN As Endnote
   ' In Fußnoten suchen
   For Each FN In ActiveDocument.Footnotes
      If FN.Range = S Then
         Selection.EndKey Unit:=wdStory, Extend:=wdMove
         FN.Reference.Select
         Selection.HomeKey Unit:=wdLine, Extend:=wdMove
         Selection.MoveDown 'Auf erste Zeile des Texts
         Exit Sub
      End If
   Next
   ' Wenn nicht in Fußnoten gefunden, dann in Endnoten suchen
   For Each EN In ActiveDocument.Endnotes
      If EN.Range = S Then
         Selection.EndKey Unit:=wdStory, Extend:=wdMove
         EN.Reference.Select
         Selection.HomeKey Unit:=wdLine, Extend:=wdMove
         Selection.MoveDown 'Auf erste Zeile des Texts
         Exit Sub
      End If
   Next
End Sub
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat