Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Array an for-Schleife übergeben
#1
Hallo zusammen,
Ich habe ein kleines Problem. Ich möchte in PowerPoint Textfeldern eine bestimmte Größe und Position über VBA zuweisen. Das klappt auch, einzelnen Textfeldern kann ich so die Position zuweisen. Nun würde ich das gerne für meinen gesamten Foliensatz machen. Allerdings besitzen nur bestimmte Folien diese Textfelder.

Meine Idee war ein Array anzulegen in dem die Folienzahlen stehen in denen das Makro durchgeführt werden soll.  Über eine for-Schleife soll das Makro dann auf diese Folien angewendet werden. Leider will das nicht so laufen wie ich es will. Ich bekomme die Fehlermeldung: Fehler beim kompilieren: Sub oder Function nicht definiert.

Ich nehme an ich übergebe das Array nicht korrekt an die for-Schleife.



Code:
Sub Positionieren()


Dim arr1(2)
arr1(0) = 4
arr1(1) = 6

Dim i As Integer
For i = arr1(0) To arr(1)

With ActivePresentation.Slides(i).Shapes(5)
.Height = 255
.Width = 340
.Left = 70
.Top = 113
End With

With ActivePresentation.Slides(i).Shapes(6)
.Left = 447
.Top = 113
End With


With ActivePresentation.Slides(i).Shapes(7)
.Height = 255
.Width = 340
.Left = 550
.Top = 199
End With

With ActivePresentation.Slides(i).Shapes(8)
.Left = 70
.Top = 386
End With

Next i

End Sub

MfG Araxx
Antwortento top
#2
Hallöchen,

so wie es ausschaut, fehlt am zweiten arr die 1.
Arrays und Schleife sollten dann funktionieren, obwohl ich meine Zweifel habe, ob Du das so willst. Im Moment werden die Folien 4 bis 6 beackert, eventuell willst DU nur die 4 und die 6?

Code:
Dim arr1(1) '1 reicht, 2 hast Du im Beispiel nicht
...
For i = arr1(0) to arr1(1) 'so wird es 4 bis 6
Code:
For i = 0 to 1
With ActivePresentation.Slides(arr1(i)).Shapes(5)  'so wird es 4 und 6
...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Araxx
Antwortento top
#3
Hallo André,

Vielen Dank. Ouch der Tippfehler tat weh... 

Perfekt, genau so hatte ich mir das vorgestellt. Ja genau wie du richtig angenommen hast, wollte ich dass die Folie 5 ausgelassen wird. Jetzt funktioniert alles super. 

Vielen Dank für deine Hilfe,

Viele Grüße,
Johannes
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste