我有一个带有每张幻灯片注释的简报。对于每张幻灯片,我想复制笔记,创建一个带有黑色边框的黄色矩形,然后将笔记粘贴到矩形中。
我开始“拼接”一个宏。这是我目前掌握的情况。它可以工作,但是矩形在顶部(需要在底部),不知道如何将注释复制并粘贴到矩形中:
Dim oPPT As Presentation
Dim oSlide As Slide
Dim r As Integer
Dim i As Integer
Dim shapectr As Integer
Dim maxshapes As Integer
Dim oShape As Shape
Set oPPT = ActivePresentation
For i = 1 To oPPT.Slides.Count
For shapectr = 1 To oPPT.Slides(i).Shapes.Count
ActiveWindow.View.GotoSlide i
Set oShape = ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeRectangle, 575.5, 9.12, 124.75, 34.12)
oShape.Fill.ForeColor.RGB = RGB(255, 255, 204)
oShape.Fill.BackColor.RGB = RGB(137, 143, 75)
With oShape
With .TextFrame.TextRange
.Text = "TEST"
With .Font
.Name = "Arial"
.Size = 18
.Bold = msoFalse
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoFalse
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
End With
End With
End With
Next shapectr
Next i
我需要将“测试”替换为幻灯片注释区域中的文本(可能是几个句子)。
我感谢你的帮助!
我想出了我需要的“调整”,以对齐文本并指定一个设定的高度。这是最终代码:
Dim osld As Slide
Dim oshp As Shape
Dim oTR As TextRange
For Each osld In ActivePresentation.Slides
On Error Resume Next
osld.Shapes("NOTES").Delete
Set oshp = osld.Shapes.AddShape(msoShapeRectangle, 20, 400, 400, 300)
oshp.Name = "NOTES"
oshp.TextFrame.AutoSize = ppAutoSizeShapeToFitText
oshp.Fill.ForeColor.RGB = RGB(255, 255, 204)
oshp.Line.ForeColor.RGB = RGB(0, 0, 0)
oshp.Line.Weight = 1.5
With oshp.TextFrame.TextRange
If Not getNotes(osld) Is Nothing Then .Text = getNotes(osld).Text
.Font.Name = "Arial"
.Font.Size = 14
.Font.Color.RGB = vbBlack
.ParagraphFormat.Alignment = msoAlignLeft
End With
oshp.Width = 717
If oshp.Height < 105 Then
oshp.Height = 105
End If
oshp.Left = 1
oshp.Top = ActivePresentation.PageSetup.SlideHeight - oshp.Height
Next osld
End Sub
Function getNotes(osld As Slide) As TextRange
' usually shapes(2) but not always
Dim oshp As Shape
For Each oshp In osld.NotesPage.Shapes
If oshp.Type = msoPlaceholder Then
If oshp.PlaceholderFormat.Type = ppPlaceholderBody Then
If oshp.TextFrame.HasText Then
Set getNotes = oshp.TextFrame.TextRange
End If
End If
End If
Next oshp
End Function
非常感谢您的帮助!!!
Sub addShp()
Dim osld As Slide
Dim oshp As Shape
Dim oTR As TextRange
For Each osld In ActivePresentation.Slides
On Error Resume Next
osld.Shapes("NOTES").Delete
Set oshp = osld.Shapes.AddShape(msoShapeRectangle, 10, 400, 400, 100)
oshp.Name = "NOTES"
oshp.TextFrame.AutoSize = ppAutoSizeShapeToFitText
oshp.Fill.ForeColor.RGB = RGB(255, 255, 204)
oshp.Line.ForeColor.RGB = RGB(0, 0, 0)
With oshp.TextFrame.TextRange
If Not getNotes(osld) Is Nothing Then .Text = getNotes(osld).Text
.Font.Name = "Arial"
.Font.Size = 10
.Font.Color.RGB = vbBlack
End With
oshp.Top = ActivePresentation.PageSetup.SlideHeight - oshp.Height
Next osld
End Sub
Function getNotes(osld As Slide) As TextRange
' usually shapes(2) but not always
Dim oshp As Shape
For Each oshp In osld.NotesPage.Shapes
If oshp.Type = msoPlaceholder Then
If oshp.PlaceholderFormat.Type = ppPlaceholderBody Then
If oshp.TextFrame.HasText Then
Set getNotes = oshp.TextFrame.TextRange
End If
End If
End If
Next oshp
End Function
看看这是不是更近
当我用Apache POI for Java创建.pptx文件时,有没有办法为幻灯片设置注释?我只能找到从演示文稿中提取笔记的方法。谢谢
我已经设置了一个宏,它将Excel电子表格中的一些图表保存为图片(作为更大程序的一部分),并且需要一些代码来将这些图片(每张幻灯片一张)粘贴到幻灯片中。 目前,我已经成功地打开了一个带有4张空白幻灯片的PowerPoint演示文稿,甚至还没有成功导入1张图片。 我一直在使用形状之类的方法。addpicture(“C:\Users\restoppathname”),但尚未使其工作
ApachePOI项目解释了如何从powerpoint幻灯片中读取形状http://poi.apache.org/slideshow/xslf-cookbook.html#GetShapes 但是,我找不到任何关于如何使用库的这一部分向powerpoint幻灯片添加形状的文档。如果我使用旧的powerpoint格式(ppt而不是pptx),我可以使用图书馆的hslf部分,并执行以下操作: 如何使用
我有一个. PPT (PowerPoint,可转换为ODP或PPTX)文件,每张幻灯片上都有演讲者注释。我想将整个演示文稿提取为动态内容,这样我就可以创建一个演讲者备忘单,在我讲话时在手机或桌子上运行(幻灯片缩略图和演讲者注释)。我经常这样做,以至于讨厌手工操作。 这几乎很容易
上下文:C#中的PowerPoint幻灯片有一个属性slide。名称(通常包含任意字符串值)。在我的C#应用程序中,我想使用这个属性来标识幻灯片(幻灯片顺序不可靠)。 问题:如何手动设置幻灯片。PowerPoint应用程序中的Name属性? 我的问题非常像:“如何在PowerPoint幻灯片中命名对象?”,但只是在幻灯片级别上。 任何帮助都将不胜感激。
我正在使用slick.js插件,并且说出了一个问题,希望有人能帮助我。我有两个旋转木马,都有五张幻灯片,顶部旋转木马一次显示一张幻灯片,底部一次显示全部五张幻灯片。顶部可以通过箭头移动,底部每个单独的幻灯片图像都可以单击,但没有箭头或点。 预期的行为是,我希望点击旋转木马中的一个幻灯片,一次显示五个(底部),以将另一个旋转木马移动到相应的幻灯片(例如,点击底部的幻灯片3将顶部移动到幻灯片3)。类似