2010-06-05 8 views
1

J'ai une zone de texte "mynote" sur une diapositive. Si j'exécute:Bogue étrange sur powerpoint vba

Sub test() 

      If ActiveWindow.Selection.SlideRange.Shapes("mynote").Visible Then 
       MsgBox "ok" 
      End If 
end sub 

Cela fonctionne.

Mais si j'attache une forme avec cette macro:

Sub test(oShape As Shape) 

      If ActiveWindow.Selection.SlideRange.Shapes("mynote").Visible Then 
       MsgBox "ok" 
      End If 
end sub 

Il ne fonctionne pas (pas de message d'erreur, aucun message « ok »)

+0

Eh bien peut-être que cela fonctionne pour vous, mais sur mon ppt il ne déclenche pas l'événement. – user310291

+0

Eh bien désolé non :) Je veux juste montrer une note en cliquant sur une image, je suis surpris que je ne peux pas le faire! – user310291

+0

Comment exécutez-vous cette méthode? Est-ce que cela se déclenche à travers un événement click quelque part? Avez-vous essayé de définir un point de rupture, pour voir si la seconde méthode est exécutée? – froeschli

Répondre

2

Cela dépendra de la façon dont vous l'appelez de une autre sous-routine - vous devez envoyer une forme. Comme:

Sub testYourTest() 
    Dim sh As Shape 
    Set sh = ActivePresentation.Slides(4).Shapes(1) 
    test sh 
End Sub 

Vous ne pouvez pas exécuter test autonome parce qu'il vous attend d'envoyer dans un objet Shape. Mais vu que votre objet oShape n'est pas utilisé dans votre routine test, vous pouvez aussi bien l'enlever.

+0

Je l'appelle en cliquant sur une image afin qu'il envoie une forme, mais cela ne fonctionne toujours pas. – user310291

Questions connexes