2017-03-28 1 views
1

Si j'ai des textes (formes) dans mon PowerPoint. Comment puis-je modifier mon code pour ne pas créer une nouvelle forme, mais écraser la valeur à l'intérieur.Écrasement lorsque vous collez sur powerpoint VBA

Le code ci-dessous crée une nouvelle forme. Des idées?

Private Sub test() 
Dim xlApp As Object 
Dim xlWorkBook As Object 

Set xlApp = CreateObject("Excel.Application") 
xlApp.Visible = False 
Set xlWorkBook = xlApp.Workbooks.Open("D:\ELE_powerpoint\book1.xlsx", True, False) 

With xlWorkBook.ActiveSheet 
xlWorkBook.sheets(1).Range("A2").Copy 
End With 

ActivePresentation.Slides(1).Shapes.Paste.Select 

Set xlApp = Nothing 
Set xlWorkBook = Nothing 


End Sub 

Répondre

1

permet d'utiliser une variable au lieu de copier et coller comme celui-ci

mytext = xlWorkBook.sheets(1).Range("A2") 

vous pouvez définir la valeur de texte d'une forme comme celui-ci

ActivePresentation.Slides(1).Shapes("Shape name").TextFrame.Characters.Text = myText 

lecture sur la façon de régler la nom d'une forme ici: How to name an object within a PowerPoint slide?

+0

Voulez-vous profiter d'une variable plutôt que de copier/coller est probablement le chemin à parcourir. +1 –

1

Vous devez trouver l'index de la forme que vous vouloir coller dans. Dites-le est l'indice 2

Ensuite, utilisez

ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Paste 
+0

merci beaucoup les gars, ça m'a aidé sur mon chemin. – ante011