【问题标题】:Using VBA to paste Excel data into Powerpoint, Font Size not changing使用 VBA 将 Excel 数据粘贴到 Powerpoint 中,字体大小不变
【发布时间】:2015-07-27 03:32:35
【问题描述】:

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

我需要创建一个程序来将某些值从 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

【问题讨论】:

  • 尝试用 mySlide.Shapes.PasteSpecial ppPasteOLEObject 替换:mySlide.Shapes.PasteSpecial DataType:=ppPasteDefault
  • 当我这样做时,它会在中途切断文本。有什么方法可以调整对象的大小以便显示整行文本?
  • 由于文本大小导致它超出页面,或者它只复制了一半的字符?
  • 当它被粘贴为 OLEObject 时,只显示文本的前 3 个字母,作为图像(?)或某种对象。如果我尝试通过水平拖动右边框来延长它,它只会扩展被截断的文本。

标签: vba excel powerpoint


【解决方案1】:

如果您想专门将您的 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

【讨论】:

    【解决方案2】:

    我的预感是您需要添加Paste:=xlPasteAllUsingSourceTheme 才能进行特殊粘贴。你可以试试这个吗?

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

    【讨论】:

    • 你是不是建议我用这行替换mySlide.Shapes.PasteSpecial DataType:=ppPasteDefault这行? mySlide.Shapes.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, DataType:=ppPasteDefault
    • 是的,请注意,唯一的变化是添加xlPasteAllUsingSourceTheme
    • 错误,未找到命名参数。我认为是因为我试图将其复制到 PPT 中导致它无法使用。
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多