【发布时间】: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