Добавить рамку вокруг текста для Excel в Powerpoint VBA - PullRequest
0 голосов
/ 05 декабря 2018

Я импортирую данные из Excel в слайды Powerpoint.Как бы я мог добавить рамку / контур вокруг текстового кадра?Также есть ли способ добавить статический контур, который не перемещается, даже если в ячейке, из которой я импортирую, нет текста?

Спасибо за любую помощь!

Вот фрагмент моего кода:

Set ppSlide2 = ppPres.Slides.Add(i + 1, ppLayoutBlank).Shapes
Set HeaderPPT = ppSlide2.AddTextbox(msoTextOrientationHorizontal, 75, 150, 800, 700).TextFrame.TextRange
If Sheet1.Range("P" & RowExcel).Text = "Title" Then          
            With HeaderPPT
                .Text = vbNewLine & Cells(RowExcel, col + 9)
                .ParagraphFormat.Alignment = ppAlignCenter
                .Font.Bold = True
                .Font.Name = "Calibri Light"
                .Font.Size = 55
            End With
End If

1 Ответ

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

TextFrame или TextRange не имеют элемента border.Родительский Shape может иметь такие границы:

Dim sld as Slide, shp as Shape
Set sld = Activepresentation.Slides(1)
Set shp = sld.Shapes.AddShapes(msoShapeRectangle, 100,100,100,100)
With shp
    .Line.Visible = True
    .Line.Weight = 2
    .Line.ForeColor.RGB = RGB(255,0,0)
End with

Чтобы поместить статическую рамку, я думаю, что вы можете сначала добавить прямоугольник или TextBox.А затем снова добавьте TextBox с содержимым ячейки Excel.(Но если добавить текстовое поле с помощью AddTextBox, граница фигуры по умолчанию является статической, даже если в ней нет текста.)

В любом случае, я протестировал следующий код:

Set ppSlide2 = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count, ppLayoutBlank).Shapes

'first, add a box(rectangle) or textbox so that the z-order can be lower than the next Textbox
Set HeaderBOX = ppSlide2.AddShape(msoShapeRectangle, 75, 150, 800, 700)
'or Set HeaderBOX = ppSlide2.AddTextbox(msoTextOrientationHorizontal, 75, 150, 800, 700)
With HeaderBOX
    .Name = "HeaderBOX"
    .Fill.Visible = False   'make it transparent
    .Line.Visible = True
    .Line.ForeColor.RGB = rgbBlack 'RGB(0,0,0)
    .Line.Weight = 2
End With

'then, add a textbox
Set HeaderPPT = ppSlide2.AddTextbox(msoTextOrientationHorizontal, 75, 150, 800, 700).TextFrame.TextRange
With HeaderPPT
    .Text = vbNewLine & "Excel Cell Text Here"
    .ParagraphFormat.Alignment = ppAlignCenter
    .Font.Bold = True
    .Font.Name = "Calibri Light"
    .Font.Size = 55
End With
...