2016-08-19 2 views
1

ich den folgenden Code haben:Wort VBA Shapes Mit Artikel

Sub removeTopAndBottomMostShapesFromActiveDocument() 

Dim shape As shape 
Dim topShape As shape 
Dim bottomShape As shape 

Dim pageNum 
For pageNum = 1 To ActiveWindow.Panes(1).Pages.Count 

    Dim highestPoint, lowestPoint 
    highestPoint = 999999 
    lowestPoint = -999999 

    Set topShape = Nothing 
    Set bottomShape = Nothing 

    Dim sr As ShapeRange 
    Set sr = ActiveWindow.Panes(1).Pages(pageNum).Rectangles.Item(1).Range.ShapeRange 
    sr.Select 
    For Each shape In sr 
     If shape.Top < highestPoint Then 
      Set topShape = shape 
      highestPoint = shape.Top 
     End If 
     If shape.Top + shape.Height > lowestPoint Then 
      Set bottomShape = shape 
      lowestPoint = shape.Top + shape.Height 
     End If 
    Next 

    If Not topShape Is Nothing Then 
     topShape.Delete 
    End If 
    If Not bottomShape Is Nothing Then 
     bottomShape.Delete 
    End If 

Mit Set sr = Activewindow ... ich kann nicht herausfinden, was die .item(1) tut. Ich habe Textfelder im Word-Dokument, die alle gleich sind. Auf einigen Seiten gibt eine sr.count von "0", aber wenn ich zu .item(2) oder .item(3) ändere, werden die Textfelder auf der spezifischen Seite gefunden. Jede Hilfe wäre willkommen.

Antwort

0

Ich denke, ich habe einen Workaround gefunden. Aus irgendeinem Grund werden die Textfelder in verschiedenen Elementen platziert, obwohl sie nach genau demselben Prozess erstellt werden. Wenn jemand das erklären kann, wäre ich dankbar. Die Lösung besteht also darin, eine Schleife mit .Item (i) von 1 bis 3 zu erstellen, die alle Felder auf den Seiten erfasst und problemlos zu funktionieren scheint.

0

Haben Sie einen Lese von Artikel 2 hier:

http://shaunakelly.com/word/word-development/selecting-or-referring-to-a-page-in-the-word-object-model.html

Wir haben in letzter Zeit eine Menge Arbeit mit Word getan und es verhält sich wie der Artikel in diesem Wort sagt und Seiten nicht gut zusammen gehen. Das Element (1) sollte alle Rechtecke auf dieser Seite enthalten, aber ich vermute, dass es über Seiten verwirrt wird (bedenken Sie, dass jedes Mal, wenn Sie ein Shape löschen, das gesamte Dokument verschoben und Shapes auf einer Seite dargestellt werden) wird jetzt auf einem anderen sein).

Ich würde auch die Gültigkeit von dem, was Sie versuchen, in Frage stellen. Wenn eine Person eine viel höhere Auflösung als eine andere Person hat, sind vermutlich die Formen, die sich oben und unten auf einer Seite auf einer Person befanden, möglicherweise nicht auf einer anderen Person vorhanden.