Makro - Text an Rechteck ausrichten
#1
Hallo zusammen,

ich bin bisher nicht besonders in die Makro-Welt vertraut.

Ich möchte gerne einen Text in ein Rechteck zentrieren und dann in einem zusammengeführten Seriendruck-Dokument auf alle Seiten anwenden.

Ich habe nun ein Makro aufgezeichnet (mit Ausrichten und verteilen) und bereits Teilerfolge erzielt.

Code:
Sub Macro1()
   ' Recorded 29.01.2024
   ActiveDocument.CreateShapeRangeFromArray(ActiveLayer.Shapes(3), ActiveLayer.Shapes(1)).AlignAndDistribute 3, 3, 0, 1, False, 2
End Sub

Hiermit funktioniert es aber leider immer nur auf der angewählten ausgewählten Seite.

Meine beiden Objekte heißen "Text" und "Rechteck1". Sie sind natürlich auf allen Seiten identisch.

Wie schaffe ich es, dass "Text" an "Rechteck1" horizontal und vertikal zueinander ausgerichtet sind. Und zwar auf alle Seiten des Dokuments?

Vielen Dank für eure Unterstützung.
Benni
Zitieren
#2
Code:
Sub Macro1()
  For i = 1 To ActiveDocument.Pages.count
     ' hier dein Code

  Next i
End Sub
[-] 1 Benutzer bedankt sich bei Litschi für diesen Beitrag:
  • benni313
Zitieren
#3
(30.01.2024, 09:20)Litschi schrieb:
Code:
Sub Macro1()
  For i = 1 To ActiveDocument.Pages.count
     ' hier dein Code

  Next i
End Sub

Vielen leiben Dank!
Es funktioniert leider wieder nur auf der aktuell angewählten Seite.

Hier mein kompletter aktueller Code
Code:
Sub Macro1()
     For i = 1 To ActiveDocument.Pages.Count
     ActiveDocument.CreateShapeRangeFromArray(ActiveLayer.Shapes(3), ActiveLayer.Shapes(1)).AlignAndDistribute 3, 3, 0, 1, False, 2
 Next i
End Sub
Zitieren
#4
Kann ich auch die auszuwählenden Objekte direkt ansprechen? Vielleicht liegt es daran.
Zitieren
#5
Hallo Benni,

(30.01.2024, 16:27)benni313 schrieb: Kann ich auch die auszuwählenden Objekte direkt ansprechen?...

Ja, das geht:

Code:
Sub TextAufRechteckMitte()
   Dim xRechteck As Shape, xText As Shape
   Dim Seite As Page
   
   For Each Seite In ActiveDocument.Pages
       Set xRechteck = Seite.Shapes("Rechteck1")
       Set xText = Seite.Shapes("Text")
       With xText
           .CenterX = xRechteck.CenterX
           .CenterY = xRechteck.CenterY
       End With
   Next
   
   Application.Refresh
End Sub

Bei den Set-Anweisungen werden die Objekte direkt angesprochen (in den Kammern).

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • benni313
Zitieren
#6
Das war es! Vielen lieben Dank für die Unterstützung!
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Erweiterte PNG Export-Funktionen per Makro möglich? asterix 0 34 01.11.2024, 00:08
Letzter Beitrag: asterix
  Ausrichten an Strecke Boerni 9 554 12.10.2024, 12:55
Letzter Beitrag: koter
  Makro-Nachhilfe für Funktionen für alle Objekte asterix 31 2.936 09.07.2024, 09:06
Letzter Beitrag: asterix
  Makro selbst aufnehmen Karthagos 17 1.189 04.07.2024, 06:54
Letzter Beitrag: Karthagos
  Ausrichten von Kurvenobjekten Boerni 7 774 19.06.2024, 17:31
Letzter Beitrag: Boerni
  VBA Objekte ausrichten fremoikaner 12 1.213 06.06.2024, 14:30
Letzter Beitrag: koter
  Rechteck wird mit runden Ecken dargestellt Karthagos 2 318 01.06.2024, 17:44
Letzter Beitrag: Karthagos
  Text partiell ersetzen Karthagos 2 412 26.05.2024, 21:09
Letzter Beitrag: Karthagos
  Corel Draw 2019 Text vertikal nilaschmi 5 1.610 14.02.2024, 17:53
Letzter Beitrag: skifan
  Textverarbeitung erscheint ein Rechteck???? Peter Kastl 11 5.812 08.02.2024, 19:18
Letzter Beitrag: KHR_1942