Animation

A

Adam Klee

At first sorry for my incorrect english, but it isn'my main language.
As a matter of fact I'm a beginer of VBA, but I decided to try.
I have a small problem, how can I make a macro to resize simple rectangle on
the worksheet (after clicking).
Resizing will have to be animated of course.
I' thinking that I have used wrong prperty?

Sub Animation()
Dim logo As Shape
Dim y As Single, x As Single
For y = 1 To 16 Step 2
logo.ShapeRange.ScaleWidth = x
For x = 1 To 8 Step 1
logo.ShapeRange.ScaleHeight = y
DoEvents
Next y
Next x
End Sub
 
P

Patrick Molloy

you'd see the for..next more clearly if you "nested" as
per the code below:

Sub Animation()
Dim logo As Shape
Dim y As Single, x As Single
Set logo = Sheet1.Shapes(1)
For y = 1 To 16 Step 2
logo.Width = y
For x = 1 To 8 Step 1
logo.Height = x
DoEvents
Next x
Next y
End Sub


Mote that it isn't necessary for the variable to be
placed after the 'next' instruction, so
Next
Next
is OK, but for clarity, I think the variables ought to be
there.



Patrick Molloy
Microsoft Excel MVP
 
A

Adam Klee

Many thanks it's working but Iwould have to put one element more:
Sub Animation()
 
P

Patrick Molloy

I used Sheet1 as the object

Set logo = Worksheets("Sheet1").Shapes(1)
and
Set logo = Sheet1.Shapes(1)

are synonymous.
In this case sheet1 is the object name while "sheet1" is
also the sheet's name. Look in the project explorer &
you'll see what I mean if you select sheet1 and look at
its properties.

Patrick Molloy
Microsoft Excel MVP
 
Top