使用VBA将Excel数据粘贴到Powerpoint中,字体大小不会改变

时间:2015-07-27 03:32:35

标签: excel vba excel-vba powerpoint

新的堆栈溢出发布,所以请指导我。 :)

我需要创建一个程序,将某些值从excel粘贴到powerpoint并对其进行格式化。

到目前为止我编写的VBA代码能够生成从Excel到PowerPoint的单元格值。但是,字体颜色和字体类型将更改时,Powerpoint中的字体大小不会更改。我不确定为什么会这样,但我想到这可能是由于某些powerpoint设置或关于我不熟悉的VBA的事情。

请协助!

代码如下:

Dim title1 As Excel.range
Dim App As PowerPoint.Application
Dim Ptn As PowerPoint.Presentation
Dim mySlide As PowerPoint.Slide
Dim myShape As PowerPoint.Shape

Set title1 = ThisWorkbook.Sheets("Sheet4").range("C1:C1")

'Set Font Properties
title1.Font.Size = 28
title1.Font.Color = RGB(0, 112, 192)
title1.Font.Name = "Century Gothic"


'Create Slide 1
Set mySlide = Ptn.Slides.Add(1, ppLayoutBlank)

'Copy Title1
title1.Copy

'Paste to PowerPoint and position
mySlide.Shapes.PasteSpecial DataType:=ppPasteDefault

Set myShape = mySlide.Shapes(mySlide.Shapes.Count)

'Set position
myShape.Left = 35
myShape.Top = 200

2 个答案:

答案 0 :(得分:0)

如果您想专门粘贴excel字段作为该幻灯片的标题,请尝试:

mySlide.Shapes.AddTitle.TextFrame.TextRange.Text = title1

编辑:您可以检查幻灯片是否已有可以使用的标题

If Not mySlide.Shapes.HasTitle Then
    mySlide.Shapes.AddTitle.TextFrame.TextRange.Text = title1
Else
   mySlide.Shapes.Title.TextFrame.TextRange.Text = title1
End If

AddTitle还具有各种属性,用于设置字体,格式,大小,颜色等。 请参阅:Adding a Powerpoint Title slide using Excel VBA

答案 1 :(得分:0)

我的预感是您需要添加Paste:=xlPasteAllUsingSourceTheme以粘贴特殊内容。你能试试吗?

'Paste to PowerPoint and position
mySlide.Shapes.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, DataType:=ppPasteDefault