标签: powerpoint-vba

您建议学习PowerPoint VBA的教程是什么?

我觉得我缺乏一些真正的基础知识,如果在这里提出所有这些基本问题,我觉得我会浪费你的时间.能否请您推荐一本很好的PowerPoint VBA教程,向我解释基础知识.提供了一个带有例子的教程.

powerpoint vba powerpoint-vba

7
推荐指数
1
解决办法
5586
查看次数

PowerPoint VBA/VSTO有未来吗?

有谁知道PowerPoint中的VBA/VSTO编程的未来是什么?我一直在研究Office自动化项目,发现使用PowerPoint特别令人沮丧,因为它似乎比Excel或Word中的VBA支持低一级.

感觉MS正试图逐步淘汰PowerPoints中对VBA的支持,因为他们在2007版本中放弃了宏录制,而对象模型缺少一些关键功能支持.

powerpoint vba vsto powerpoint-vba

7
推荐指数
1
解决办法
2366
查看次数

从Powerpoint在VBA中打开Excel文件

我试图在Powerpoint 2010中使用VBA在以下代码的帮助下打开Excel文件.

Private Sub CommandButton1_Click()
Dim xlApp As Excel.Application
Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = True

xlApp.Workbooks.Open "C:\lol\Book1.xlsx", True, False
Set xlApp = Nothing

Range("A8").Value = "Hello"
End
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误.

编译错误用户定义的类型未定义.

我错过了什么.任何人都可以共享示例代码片段来打开excel文件,更改单元格值并使用VBA在Powerpoint 2007和2010中关闭Excel文件.

我已经搜索了很多并尝试了不同的代码,但每次都得到相同的错误.:(

提前致谢.:)

powerpoint-vba

7
推荐指数
2
解决办法
3万
查看次数

在PowerPoint演示文稿中旋转3D图表

我在Excel中创建了一个旋转3D图表的宏.我将图表复制到PowerPoint中,设置代码以在幻灯片显示时在PowerPoint中运行.代码运行,但我无法让它实际更改屏幕上显示的内容.幻灯片处于编辑模式时,图形会旋转.知道如何让代码不仅仅运行(我可以看到调试数字显示),但在演示模式下更新屏幕?我的代码是:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub SpinTheChart()

    RotateX = ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
                    .ThreeD.RotationX

    Do While ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 2
        RotateX = RotateX + 7
        If RotateX > 360 Then RotateX = RotateX - 360
        ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
                    .ThreeD.RotationX = RotateX
        DoEvents
        Sleep 125
        Debug.Print RotateX
    Loop

End Sub

Sub OnSlideShowPageChange()
    Dim i As Integer
    i = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
    If i = 2 Then SpinTheChart
End Sub
Run Code Online (Sandbox Code Playgroud)

更新:我还在打这个.似乎有些建议说更新当前显示的图表,您需要在DoEvents下面使用:

SlideShowWindows(1).View.GotoSlide SlideSowWindows(1).View.CurrentShowPosition
Run Code Online (Sandbox Code Playgroud)

但这不起作用.它退出正在运行的任何代码.因此,第一个函数中的Do/Loop退出,并且不会继续进行第二次迭代.

excel powerpoint vba excel-vba powerpoint-vba

7
推荐指数
1
解决办法
865
查看次数

使用ResampleMediaTask进行Powerpoint视频导出进度

我正在尝试使用进度指示将.pptx文件转换为.mp4视频文件.我正在使用Python 2.7.6以及win32com.client模块,以便在Microsoft Powerpoint 2013中自动执行一些操作.

到目前为止这是我的代码:

import win32com.client

powerpoint = win32com.client.Dispatch("Powerpoint.Application")
presentation = powerpoint.Presentations.Open(FileName='myFile.pptx',
                                           WithWindow=False)

try:
    # May need a few other parameters as well
    presentation.CreateVideo('out.wmv')
except:
    raise SystemExit
Run Code Online (Sandbox Code Playgroud)

我的问题是我没有得到导出到视频进展的迹象.我知道这些信息是可用的,因为从应用程序中导出视频时,Powerpoint本身会显示一个确切的进度条.

到目前为止,我设法检索的唯一信息是轮询该CreateVideoStatus属性,该属性仅告诉我转换是否已经结束.

while presentation.CreateVideoStatus == 1:
    time.sleep(1) 
Run Code Online (Sandbox Code Playgroud)

然而,根据这篇文章Powerpoint 2013 - 导出到视频的进展,用户Steve Rindsberg建议我们应该使用ResampleMediaTasks对象及其PercentComplete()方法来获得进展.

关于如何在Python中实现这一点的任何想法?

python powerpoint vsto pywin32 powerpoint-vba

7
推荐指数
1
解决办法
1009
查看次数

用随机数执行计算

我正在尝试制作一个数学练习powerpoint,其中学生将使用数字1 - 20来呈现随机添加问题.我一直在使用David Marcovtiz(和其他人)的教程,并使用他的代码作为起点.由于我的观众是年轻学生,我希望数学问题不是在消息框中,而是在文本框或形状之类的东西,我可以自定义,并为年轻学生提供大的视觉吸引力.

所以,我想要做的......在一个powerpoint节目中

  1. 学生可以点击"开始"按钮,将其带到下一张幻灯片
  2. 下一张幻灯片会自动生成2个学生必须一起添加的随机数.
  3. 学生输入答案
  4. 如果答案是正确的 - 我想要一些东西来表示答案是正确的,但不是他们必须点击关闭的东西.理想情况下,一个小星星在角落闪烁然后消失
  5. 如果答案不正确,则消息或图片会闪烁然后消失.

  6. 自动/随机生成新的添加问题我想将添加问题的数量设置为例如20,然后将幻灯片移动到评分幻灯片,该幻灯片显示他们在图片中的分数,例如每个正确答案的星号.

更新:使用Activex文本框:

我已经成功使用activex文本框,能够随机显示两个数字并将它们相乘并在第三个activex文本框中显示答案,我将其隐藏在幻灯片中.我使用第四个作为输入框,让学生输入他们的答案.如果这与第三个框中的答案相同,我可以显示一个星形并清除框然后移动到下一张幻灯片.如果它不一样,我可以去显示另一张图片,然后转到下一张幻灯片.(我原本希望幻灯片更新并使用一张幻灯片提出20个问题,但发现这很困难.)

目前,这需要单击三个命令按钮.

到目前为止我所管理的内容(我知道这对你来说似乎很难过,可能不稳定,但对我来说是一项重大成就,并且'比特'正在运作)我可以管理它用于乘法但是当我+值时,例如9 + 3 ,我得到93

Private Sub CommandButton1_Click()
    TextBox1.Value = Int(10 * Rnd)
    TextBox2.Value = Int(10 * Rnd)
    TextBox3.Value = TextBox1.Value * TextBox2.Value
End Sub

Private Sub CommandButton2_Click()
    If TextBox4.Value = TextBox3.Value Then
        ActivePresentation.Slides("problem").Shapes("badge5").Visible = True
        ActivePresentation.Slides("score").Shapes("badge5").Visible = True
    Else 
        ActivePresentation.Slides("problem" _).Shapes("incorrect").Visible = True

        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
    End If
End Sub

Private Sub CommandButton3_Click()
    SlideShowWindows(1).View.Next …
Run Code Online (Sandbox Code Playgroud)

random vba powerpoint-vba

7
推荐指数
1
解决办法
163
查看次数

在powerpoint 2007中调整图片大小

我环顾四周.我能找到的只是在Excel或Excel中调整大小.

我正在从pdf粘贴一张图片,需要点击一下调整大小和定位.

powerpoint powerpoint-vba

6
推荐指数
1
解决办法
2万
查看次数

当SelectionType = ppSelectionNone时,如何获得Powerpoint中可见幻灯片的SlideIndex

我有一些代码需要我知道SlideIndex要操作的内容(例如,插入新幻灯片的位置,插入ChartObject的位置等).大约99%的时间,我可以成功获得SlideIndex:

Dim w as Long 'slide index variable
w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex
Run Code Online (Sandbox Code Playgroud)

另外0.1%的时间,ActivePresentation.Windows(1).SelectionType = ppSelectionNone它会失败,因为(可以理解)它无法获得SlideIndex选择,因为没有选择.如果用户无意中"选择"了"大纲"窗格中两个幻灯片之间的空间,则可能会发生这种情况.

理想情况下,我想要做的是获取SlideIndex幻灯片的属性,该属性在幻灯片窗格中可见:

在此输入图像描述 我目前有一些代码测试是否SelectionTypeppSelectionNone,所以我可以捕获条件,我只是没有找到一种方法来识别幻灯片窗格的slideIndex.

Function GetMySlide()
Dim w as Long
    If Not ActivePresentation.Windows(1).Selection.Type = ppSelectionNone Then

        w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex
        Set GetMySlide = ActivePresentation.Slides(w)

    Else:

        MsgBox "No slide is currently selected. Please select a slide in the Outline pane in order to proceed.", vbInformation
        Set GetMySlide = Nothing
        Exit Function
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

更新 …

powerpoint powerpoint-vba

6
推荐指数
1
解决办法
2723
查看次数

使用Master通过自定义布局在VBA for PowerPoint 2010中创建新幻灯片

我有以下VBA代码来创建一个新的PowerPoint幻灯片:

longSlideCount = ActivePresentation.Slides.Count

With ActivePresentation.Slides
    Set slideObject = .Add(longSlideCount + 1, ppLayoutTitle)
End With
Run Code Online (Sandbox Code Playgroud)

...插入'ppLayoutTitle'类型的新幻灯片,但我想知道是否可以在'幻灯片母版视图'中创建自定义布局,然后将该特定幻灯片模板插入到演示文稿中?

提前致谢!!!

powerpoint vba powerpoint-vba powerpoint-2010

6
推荐指数
1
解决办法
2万
查看次数

如何不为PPT中的隐藏幻灯片计算页码?

在演示模式下,我只希望未隐藏的幻灯片以连续的页码显示。如何避免计算隐藏的幻灯片?

powerpoint powerpoint-vba powerpoint-2013

6
推荐指数
1
解决办法
1万
查看次数