Vba coding Excel to powerpoint



高级问题:我想将特定数据从用户表单发送到Excel中一个工作表中的一行中。然后我想将该行发送到PowerPoint文件中。

我有一个用户表单,可以将数据正确发送到 excel 行中。

我已经格式化了Powerpoint演示文稿,但我不知道该格式在vba术语中被称为什么。

每行数据每次都需要创建一张格式相同的新幻灯片。

用户窗体需要将 2 张图片发送到 PowerPoint 中的形状中。每行大约有 7 个"字符串"数据单元格。

你问了两个问题:

  1. 如何将数据从用户表单传输到工作表,
  2. 如何将数据从工作表传输到Powerpoint。

我已经回答了第二个问题。


  • Powerpoint向幻灯片中添加表格。

    • 选择表,然后单击Layout功能区中的Selection Pane
      这将打开Selection and Visibility窗口。
      从这里您可以重命名最初将命名为Content Placehold x
      • 我将表插入Slide 2并将其命名为MyTable
    • 保存演示文稿并关闭Powerpoint
  • Excel中创建新工作簿。

    • 向行中添加数据。
      我在范围A2:E2中插入了值,以匹配我创建的Powerpoint表中的五列。
    • 将新的代码模块添加到Excel文件中。
    • 此代码将从Excel中创建Powerpoint的实例:

Private Function CreatePPT(Optional bVisible As Boolean = True) As Object
Dim oTmpPPT As Object
On Error Resume Next
Set oTmpPPT = GetObject(, "Powerpoint.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ERROR_HANDLER
Set oTmpPPT = CreateObject("Powerpoint.Application")
End If
oTmpPPT.Visible = bVisible
Set CreatePPT = oTmpPPT
On Error GoTo 0
Exit Function
ERROR_HANDLER:
Select Case Err.Number
Case Else
MsgBox "Error " & Err.Number & vbCr & _
" (" & Err.Description & ") in procedure CreatePPT."
Err.Clear
End Select
End Function   

  • 此代码将设置对Powerpoint的引用(如有必要打开它),打开演示文稿并将数据从Sheet1!A2:E2传输到Powerpoint表中:

Public Sub Main()
Dim oPPT As Object
Dim oPresentation As Object
Dim oSlide As Object
Dim x As Long
Dim rCell As Object
Set oPPT = CreatePPT 'Get instance of PPT.
'Powerpoint is in same folder as Excel -
Set oPresentation = oPPT.Presentations.Open(ThisWorkbook.Path & "My PPTX.pptx")
Set oSlide = oPresentation.Slides(2)
With oSlide
'Add text to the title shape.
.Shapes("Title 1").TextFrame.TextRange.Text = "My Example Table"
'Populate each cell in row 2 of the table.
For Each rCell In .Shapes("MyTable").Table.Rows(2).Cells
x = x + 1
rCell.Shape.TextFrame.TextRange.Text = ThisWorkbook.Worksheets("Sheet1").Cells(2, x)
Next rCell
End With
End Sub

相关内容

  • 没有找到相关文章

最新更新