Исправить текстовое поле (справа) в слайде PowerPoint из Excel VBA - PullRequest
0 голосов
/ 21 декабря 2018

Я помещаю содержимое одной ячейки в слайд PowerPoint с таким кодом:

Set Sh = Pres.Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
    Left:=80, Top:=58, Width:=150, Height:=45)
Sh.TextFrame.TextRange.Text = Worksheets("Image ppt").Range("C38").Value 
Sh.TextFrame.TextRange.Font.Color = RGB(0, 75, 125)
Sh.TextFrame.TextRange.Font.Size = 16
Sh.TextFrame.TextRange.Font.Bold = True

Я хочу, чтобы текст в поле был выровнен по правому краю, а текстовое поле - в правом верхнем углу.Например:

enter image description here

Поскольку текст может изменяться, поэтому длина и я могу изменять только эти параметры (слева, сверху, ширины и высоты), У меня есть это:

enter image description here

Как установить текстовое поле, чтобы исправить его в правом верхнем углу, и как выровнять текст справа?

1 Ответ

0 голосов
/ 21 декабря 2018

Вы довольно близки, нам просто нужно изменить часть кода.

Set Sh = Pres.Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
        Left:=80, Top:=58, Width:=150, Height:=45)
    Sh.TextFrame.TextRange.Text = Worksheets("Image ppt").Range("C38").Value 
    Sh.TextFrame.TextRange.Font.Color = RGB(0, 75, 125)
    Sh.TextFrame.TextRange.Font.Size = 16
    Sh.TextFrame.TextRange.Font.Bold = True

    'Add this to align the content of the textbox to the right.
    Sh.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignRight

'Select the Shape.
Sh.Select

'With the active selection, align it to the upper right corner.
With Application.ActiveWindow.Selection.ShapeRange

     'If you want it exactly in the upper right corner use this.
     .Align msoAlignRights, msoTrue
     .Align msoAlignTops, msoTrue

     'If you want a little space between the slide & the text box, this is 
     'the approximate value for the upper right corner.
     .Left = 870
     .Top = 10

End With

Все, что я сделал, это добавил код, который выровняет содержимое TextRange вправо:

'Add this to align the content of the textbox to the right.
 Sh.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignRight

Теперь, чтобы фактически выровнять само текстовое поле по верхнему правому углу слайда, я собираюсь добавить текстовое поле в диапазон формы.Здесь я собираюсь использовать встроенный метод выравнивания, чтобы выровнять его по верху слайда и дальнему правому углу.

'Select the Shape.
Sh.Select

'With the active selection, align it to the upper right corner.
With Application.ActiveWindow.Selection.ShapeRange

     'If you want it exactly in the upper right corner use this.
     .Align msoAlignRights, msoTrue
     .Align msoAlignTops, msoTrue

     'If you want a little space between the slide & the text box, this is 
     'the approximate value for the upper right corner.
     .Left = 870
     .Top = 10

End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...