我尝试了很多版本来获取此代码。这个至少错误...我希望在PowerPoint中,从剪贴板中选择Paste到PNG。
Sub Test()
ActivePresentation.Slides.Paste.Shapes.PasteSpecial ppPastePNG
End Sub
这个错误说出
“无效请求。剪贴板为空或包含可能未在此处粘贴的数据。”
剪贴板不为空,并且包含我可以粘贴的数据。
感谢您的任何想法!
答案 0 :(得分:1)
仅供参考 - 在经过多次试验和错误之后,我想出了这个宏。它复制幻灯片内容并将其作为PNG粘贴回幻灯片。
Sub test()
Dim sld As Slide
Dim pre As Presentation
Dim shp1 As Shape
Dim shp2 As Shape
Set pre = ActivePresentation
For Each sld In pre.Slides
Set shp1 = sld.Shapes.AddShape(msoShapeRectangle, 0, 0, 20, 20)
shp1.Line.Visible = msoFalse
shp1.Fill.Transparency = 1
Set shp2 = sld.Shapes.AddShape(msoShapeRectangle, 0, 0, 20, 20)
shp2.Left = 720 - shp2.Width
shp2.Top = 540 - shp2.Width
shp2.Line.Visible = msoFalse
shp2.Fill.Transparency = 1
Next
For Each sld In pre.Slides
sld.Shapes.Range.Cut
If sld.Shapes.Count > 0 Then
sld.Shapes.Range.Delete
sld.Shapes.PasteSpecial ppPastePNG
sld.Shapes.Range.Align msoAlignCenters, msoTrue
sld.Shapes.Range.Align msoAlignMiddles, msoTrue
End If
If sld.Shapes.Count = 0 Then
sld.Shapes.PasteSpecial ppPastePNG
sld.Shapes.Range.Align msoAlignCenters, msoTrue
sld.Shapes.Range.Align msoAlignMiddles, msoTrue
End If
Next
End Sub
答案 1 :(得分:0)
简单回答:
Set m = ActivePresentation
n = m.Slides.Count
m.Slides.Add n + 1, ppLayoutBlank
m.Slides(2).Shapes.PasteSpecial ppPastePng
msdn for powerpoint上的参考页面:
"形状"粘贴格式:
http://msdn.microsoft.com/en-us/library/office/ff745158(v=office.15).aspx
新幻灯片布局:
http://msdn.microsoft.com/en-us/library/office/ff745137(v=office.15).aspx
或者如果需要纯文本:
m.Slides.Add n + 1, ppLayoutText
m.Slides(n + 1).Shapes(2).TextFrame.TextRange.PasteSpecial (ppPasteText)
"的TextRange" pastespecial格式:
http://msdn.microsoft.com/en-us/library/office/ff745706(v=office.15).aspx
甚至可以将文本输入变量:
myVar = m.Slides(1).Shapes(1).TextFrame.TextRange.Text
"的TextRange"文字属性:
http://msdn.microsoft.com/en-us/library/office/ff746239(v=office.15).aspx
P.S。
对于属性或方法,小写也是可以接受的,尽管它们都是文档中的大写字母
函数调用的括号可以省略,如上面的第一个代码块。