我正在用 vba 创建一个 Powerpoint。我的计划是设置代码,使每个子例程创建特定的幻灯片。但是,我需要将幻灯片编号传递给每个子例程,以便它在正确的位置创建正确的幻灯片。我无法定义 excel vba 中的 .Slides.Count 是什么。我知道它在技术上是一个 Long,但不知何故,我能够将它作为 Integer 在另一个不再工作的代码补丁中传递。
我的问题是:
.Slides.Count 函数。从技术上讲,它是长整型还是整数?如果是 Long,为什么要这样定义?是因为整数有上限而长整型没有上限吗?
我应该如何将 .Slides.Count 变量传递到创建新幻灯片的子例程中?作为整数还是长整型?
我有一些示例代码:
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 = slidesCount + 1
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
http://vba.relief.jp/powerpoint-vba-get-active-slide-number/ 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)