Je crée un Powerpoint dans vba. Mon plan est de mettre en place le code de telle sorte que chaque sous-programme crée une certaine diapositives. Cependant, j'ai besoin de passer le numéro de diapositive à chaque sous-programme afin qu'il crée la diapositive appropriée dans la bonne position. J'ai du mal à définir ce que le .Slides.Count est dans Excel vba. Je comprends que c'est techniquement long, mais d'une façon ou d'une autre j'ai pu le faire passer en entier dans un autre patch de code qui ne fonctionne plus.Variable de nombre de diapositives Powerpoint dans VBA
Mes questions sont les suivantes:
La fonction .Slides.Count. Est-ce techniquement un long ou un entier. Si c'est un long, pourquoi est-il défini de cette façon? Est-ce parce que les nombres entiers ont un plafond et les longs ne le font pas?
Comment dois-je transmettre la variable .Slides.Count dans mon sous-programme qui crée une nouvelle diapositive? Entier ou long?
J'ai quelques exemples de code:
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
Slides.Count est longue, mais vous n'avez pas estompé slidesCount dans votre code VBA si traite probablement comme une variante. TOUJOURS inclure Option Explicit comme première ligne dans un module VB/VBA; cela va vous obliger à DIM correctement vos variables avant de les utiliser. Pourquoi longtemps? Si je comprends bien, c'est parce que Longs sont plus efficaces que Integers. Notez également que vous n'avez pas besoin de ppSlide.Select dans Sub Slide2. –