Clever-Excel-Forum

Normale Version: Array an for-Schleife übergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
...
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