Word belgesini aynı sayfa dikey konumuyla önceki imleç konumuna yeniden açın


1

Sayfa, dikey dikey konumuyla aynı şekilde dikey olarak konumlandırılmış olarak önceki düzenleme noktama geri dönmek istiyorum. Shift + F5 tekniği beni önceki düzenleme noktasına döndürür, ancak döndüğüm sayfa ekranda rasgele bir şekilde dikey olarak konumlandırılmış. Başka bir deyişle, imlecim belge görünüm penceresinin üstünden 300 dikey piksel ise, sayfamı yeniden açmak istiyorum, böylece imlecin konumu görünüm alanımın üstünden hala 300 dikey piksel olacaktır.

Metin imlecimin dikey konumunu (ekranda) belirlemek için aşağıdakiler kullanılabilir:

ActiveWindow.GetPoint pLeft, pTop, pWidth, pHeight, Seçim. Aralık

Bu yüzden zorluk, dökümanımı metin imlecimi orijinal dikey pozisyonuna (pH) döndürecek şekilde nasıl kaydıracağım?

Karşılık gelen bir ActiveWindow.SetPoint ve ActiveWindow.ScrollIntoView bir seçim aralığını görünüme kaydırır, ancak seçim aralığının ekrandaki dikey konumu üzerinde kontrol sağlamaz.


Tüm belgeler için mi yoksa belirli bir belge için mi?
Jeremy W

Belirli bir belge için
Malcolm

Belki de asıl sorumu ifade etmenin daha iyi bir yolu: Sayfayı dikey olarak asıl dikey konumuyla aynı şekilde yerleştirilmiş olarak önceki düzenleme noktama geri dönmek istiyorum. ÜstKrkt + F5 beni önceki düzenleme noktasına döndürür, ancak geri döndüğüm sayfa ekranda rasgele bir şekilde dikey olarak konumlandırılmış. Başka bir deyişle, imlecim belge görünüm penceresinin üstünden 300 dikey piksel ise, sayfamı yeniden açmak istiyorum, böylece imlecin konumu görünüm alanımın üstünden hala 300 dikey piksel olacaktır.
Malcolm

Bu oldukça fazla netlik ekler. Lütfen sorunuzu, başkalarının yararına olacak şekilde (ve daha fazla dikkat alacak şekilde) düzenleyin.
Jeremy W

Yanıtlar:


1

Bunu bu iki makro ile başarabilirsiniz. Biri geçerli görünüm ayarlarını saklamak için, diğeri onları geri yüklemek için. Burada ve burada daha fazla kod yardımı var

düzenleme : Yatay ve dikey kaydırma yüzdelerini ve görünüm tipine ek olarak geçerli seçim noktasını saklamak için kodu güncelledim. Şu anda bunu test etmek için Word'ün bir kopyası yok.

Görünümü sakla

Sub StoreDocView()

   ' Declare variables
   Dim OriginalViewType As Long
   Dim OriginalHorizontalScrollPercent as Long
   Dim OriginalVerticalScrollPercent as Long
   Dim OriginalSelectionStart as Long
   Dim OriginalSelectionEnd as Long

   ' Capture the current settings
   OriginalViewType = ActiveWindow.ActivePane.View.Type
   OriginalHorizontalScrollPercent = ActiveWindow.ActivePane.HorizontalPercentScrolled
   OriginalVerticalScrollPercent = ActiveWindow.ActivePane.VerticalPercentScrolled
   OriginalSelectionStart = ActiveWindow.ActivePane.Selection.Start
   OriginalSelectionEnd = ActiveWindow.ActivePane.Selection.End


   ' Store the view information to a Document Variable
   ActiveDocument.Variables.Add Name:="DocViewType", Value:=OriginalViewType
   ActiveDocument.Variables.Add Name:="DocHorizontalScroll", Value:=OriginalHorizontalScrollPercent
   ActiveDocument.Variables.Add Name:="DocVerticalScroll", Value:=OriginalVerticalScrollPercent
   ActiveDocument.Variables.Add Name:="DocSelectionStart", Value:=OriginalSelectionStart
   ActiveDocument.Variables.Add Name:="DocSelectionEnd", Value:=OriginalSelectionEnd

End Sub

Görünümü al

Sub GetDocView()

   ' Declare variables
   Dim OriginalViewType As Long
   Dim OriginalHorizontalScrollPercent as Long
   Dim OriginalVerticalScrollPercent as Long
   Dim OriginalSelectionStart as Long
   Dim OriginalSelectionEnd as Long

   ' Get document variables
   OriginalViewType = ActiveDocument.Variables("DocViewType").Value
   OriginalHorizontalScrollPercent = ActiveDocument.Variables("DocHorizontalScroll").Value
   OriginalVerticalScrollPercent = ActiveDocument.Variables("DocVerticalScroll").Value
   OriginalSelectionStart = ActiveDocument.Variables("DocSelectionStart").Value
   OriginalSelectionEnd = ActiveDocument.Variables("DocSelectionEnd").Value

   ' Restore settings
   ActiveWindow.ActivePane.View.Type = OriginalViewType
   ActiveWindow.ActivePane.HorizontalPercentScrolled = OriginalHorizontalScrollPercent
   ActiveWindow.ActivePane.VerticalPercentScrolled = OriginalVerticalScrollPercent
   ActiveWindow.ActivePane.Selection.Start = OriginalSelectionStart
   ActiveWindow.ActivePane.Selection.End = OriginalSelectionEnd


End Sub

Jeremy: Geri bildiriminiz için teşekkür ederiz. Orijinal soruyu daha ayrıntılı olarak güncelledim. Yukarıdaki kodunuz görüntüleme modunu koruyor (düşünmediğim bir şey değildi), ancak sayfa orijinal konumuna dikey olarak yerleştirilmiş bir sayfada belirli bir konuma geri dönmenin bir yolunu arıyorum. Başka bir deyişle, imlecim araç çubuğunun altından 300 pikselse, önceki düzenleme konumuma döndüğümde sayfamın dikey olarak aynı konuma konumlandırılmasını istiyorum.
Malcolm

İyi yakalama. Kaydırma yüzdelerini ve ekleme noktasını koda ekledim
Jeremy W
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.