VBA中的Powerpoint幻灯片计数变量

时间:2017-07-29 15:46:44

标签: excel-vba count powerpoint long-integer vba

我正在vba中创建一个Powerpoint。我的计划是设置代码,使每个子程序创建一个特定的幻灯片。但是,我需要将幻灯片编号传递给每个子程序,以便在正确的位置创建正确的滑块。我无法定义.slides.Count在excel vba中的含义。我知道它在技术上是一个很长的,但不知怎的,我能够在另一个不再有效的代码片段中将它作为一个整数传递。

我的问题是:

  1. .Slides.Count函数。这在技术上是长期还是整数。如果它是一个龙,为什么这样定义?是因为整数有上限而多头没有?

  2. 我应该如何将.Slides.Count变量传递到创建新幻灯片的子例程中?作为整数还是长?

  3. 我有一些示例代码:

     VBoxManage internalcommands sethduuid <file.vdi>
    

1 个答案:

答案 0 :(得分:-1)

http://vba.relief.jp/powerpoint-vba-get-active-slide-number/

设置当前幻灯片变量的方法是
foo = ActiveWindow.Selection.SlideRange.SlideIndex

然后使用Call slide2(slidesCount)

调用该函数

尝试以下

Sub CreatePres()
    Dim ppApp As PowerPoint.Application
    Dim ppPres As PowerPoint.Presentation
    Dim ppSlide As PowerPoint.Slide
    Dim ppTextbox As PowerPoint.Shape

    Set ppApp = New PowerPoint.Application
    ppApp.Visible = True
    ppApp.Activate

    Set ppPres = ppApp.Presentations.Add
    slidesCount = ppPres.Slides.Count
    Set ppSlide = ppPres.Slides.Add(slidesCount + 1, ppLayoutTitle)
    ppSlide.Shapes(1).TextFrame.TextRange.Text = "Hello world"
    ppSlide.Shapes(2).TextFrame.TextRange.Text = Date
    slidesCount = ActiveWindow.Selection.SlideRange.SlideIndex
    Call slide2(slidesCount)
End Sub

Sub slide2(i As Integer)
    Set ppSlide = ppPres.Slides.Add(i + 1, ppLayoutTitle)
    ppSlide.Select
    ppSlide.Shapes(1).TextFrame.TextRange.Text = "Hello world"
    ppSlide.Shapes(2).TextFrame.TextRange.Text = Date
End Sub