我想将所有幻灯片和幻灯片注释从PowerPoint复制到Word文档的表格中-表格的第1列将具有幻灯片的图片,第2列将具有注释文本。 (这模拟了PPT的“创建讲义”功能,但使我可以更好地控制Word格式。)
我已经开始着重于复制幻灯片的代码了-但是PPT vba不允许我指定范围功能-因此我在获取将幻灯片粘贴到Col 1中的代码时遇到了问题。
这是我到目前为止所拥有的。这将复制所有幻灯片-但不会放入表格/ col1中。我还没有添加注释的代码-想要先完成幻灯片。
Sub CopyToWord()
Dim WdApp As Object
Dim WdDoc As Object
Dim r As Integer 'used to track table row
Dim s As Slide
Dim myTable As Table
Dim FontName As String
Dim FontSize As Integer
Dim FontColor As String
'create Word Document
Err.Clear
On Error Resume Next
Set WdApp = GetObject(Class:="Word.Application")
If Err <> 0 Then
Set WdApp = CreateObject("Word.Application")
End If
WdApp.Visible = True
Set WdDoc = WdApp.Documents.Add
'Create 2 Column Table and set column widths
ActiveDocument.Tables.Add Range:=myRange, NumRows:=1, NumColumns:=2
Selection.Tables(1).Columns(1).SetWidth ColumnWidth:=175, RulerStyle:= _
wdAdjustNone
Selection.Tables(1).Columns(2).SetWidth ColumnWidth:=380, RulerStyle:= _
wdAdjustNone
'copy each slide to table Col 1
ActiveDocument.Tables(1).Select
Set myTable = Selection.Tables(1)
r = 1
For Each s In ActivePresentation.Slides
s.Copy
ActiveDocument.Tables(1).Rows(r).Cells(1).Select
WdApp.Selection.Paste
Selection.InsertRowsBelow (1)
r = r + 1
Next
'Add Borders
ActiveDocument.Tables(1).Select
With Selection.Borders(wdBorderTop)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderLeft)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderBottom)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderRight)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderHorizontal)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderVertical)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
End Sub
感谢您的帮助!