Pomysł na niniejszy wpis powstał po przeczytaniu pytania i kilku odpowiedzi w serwisie StackOverflow. Postawione pytanie było proste lecz tu przedstawię je w zmodyfikowanej i bardziej rozbudowanej formie- jak uzyskać efekt, w którym poszczególne paragrafy w kształcie są naprzemiennie wyrównane do prawej i lewej strony (zgodnie z tym co prezentuje poniższy przykładowy obrazek)?
Oto prosty kod realizujący zadanie wraz z kilkoma komentarzami:
01 | Sub AlignParagraphs_In_Shape() |
05 | Set SHP = ActiveSheet.Shapes(1) |
09 | Dim txtRNG2 As TextRange2 |
10 | Set txtRNG2 = SHP.TextFrame2.TextRange |
15 | For i = 1 To .Paragraphs.Count |
19 | .Paragraphs(i).ParagraphFormat.Alignment = msoAlignRight |
21 | .Paragraphs(i).ParagraphFormat.Alignment = msoAlignLeft |