今回は“消滅、出現―3”です。
今回は、縮小、拡大を利用して、消滅、出現をします。(厳密には消滅はしません)
これは、オブジェクトの大きさを変化させるのですが、回転と同じく、相対変化と絶対変化があります。
相対変化は、現在の大きさの何パーセントの大きさにするか(”1”より小さければ小さくなり、大きければ大きくなります)で決めます。
絶対変化は、大きさをピクセルで指定します。”0”で最小。最大は無限大(実際はメモリに依存))です。
これらは、アニメーションの内容によって使い分けします。
それでは、前回のエクセルを開きましょう。
“スマイル”の外のセルをクリックして、ハンドルをはずしておきます。
つづいて、マクロの作成に入ります。
マクロの記録ボタン (左端)を押して、
マクロ名に「縮小」と入力して「OK」します。
ここからマクロの記録です。
“スマイル”をクリックしてハンドル(周りの小さな白い丸)をつけます。
つづいて、右上のハンドル(白い丸)をクリックしながら左下へドラッグして”スマイル”を小さくします。大きさは適当でいいです。
“記録終了”ボタン(左端(形は四角に変わっています)を押します。
または
つづいて右端の”Visual Basic Editor”ボタンを押して(または、Alt+F11)、エディタを表示させます。
できあがったモジュールはこのようになっていると思います。
Sub 縮小()
'
' 縮小 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.ScaleWidth 0.15, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.15, msoFalse, msoScaleFromBottomRight
End Sub
これだと、いっきに縮小されるので、少しづつ変化するように赤字の部分を修正します。
(回転のときと同じです)
Sub 縮小()
'
' 縮小 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
’初期値(”スマイル”を画面の左上端、直径300ピクセルの大きさに設定します。)
Selection.ShapeRange.Left=0
Selection.ShapeRange.Top=0
Selection.ShapeRange.Width = 300
Selection.ShapeRange.Height = 300
’ここまでが、初期位置の設定です。
For n = 1 To 100 ’縮小を100回繰り返す
Selection.ShapeRange.ScaleWidth 0.95, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.95, msoFalse, msoScaleFromBottomRight
DoEvents
Next
End Sub
これでオブジェクトは小さくなってほとんど見えなくなると思います。
(ただし、パソコンによって大きさが異なる場合がありますから、そのときは”繰り返し回数”を調整してください)
今度は、絶対変化を利用して、いま、小さくした”スマイル”を”拡大”するマクロを作成します。
上のモジュールをコピーして貼り付けます。
これを、下のように赤字部分を修正してください。
Sub 拡大()
'
' 拡大 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.Left=0
Selection.ShapeRange.Top=0
For n = 1 To 300
Selection.ShapeRange.Width = n
Selection.ShapeRange.Height = n
DoEvents
Next
Cells(1, 1).Select
End Sub
これで、完成です。
[表示]-[ツールバー]-[フォーム]から、ボタンをクリックしてから適当な位置をクリックしてボタンを貼り付けてましょう。
出てきたダイアログボックスのなかの「縮小」をクリックします。
おなじくもう1個ボタンを貼り付けて、「拡大」をクリックします。
これで、“縮小”ボタンを押すと“スマイル”が小さくなり(ほとんど見えなくなります)、“拡大”ボタンを押すと拡大されて見えるようになります。
うまくできましたか?
ここで、これまでいただいた質問中から、ひとつだいじな項目を紹介しておきます。
「”スマイル”がぜんぜん動かない」と言う問い合わせです。
見せていただくと、マクロは正しくても、”オブジェクト名”が違っているケースが一番多いようです。
このシリーズで紹介しているマクロの中では、オブジェクト(”スマイル”)名は、"AutoShape 1"となっています。ただし、”スマイル”を、新しく作ったり、コピーした場合は名前が変わってきます(番号が増えてきます)。
オブジェクト名は、オブジェクトをクリックすると、エクセル画面の左上にある”名前ボックス”に表示されます。それが、"AutoShape 1"以外の場合は、その名前("AutoShape 2"とか、オートシェイプ 3 など)をコピー(Ctrl+C)してモジュールの該当部分(ActiveSheet.Shapes("AutoShape 1").Select)に貼り付ける(Ctrl+V)か、書き換えてください。これが正しくないと動きません。動かない方は、もういちど確認してください。
どうしてもうまく行かない場合は、新しくBookを開いて作成していただくといいでしょう。
次回は、画像切り替え(スライド)を紹介する予定です。
今回は、縮小、拡大を利用して、消滅、出現をします。(厳密には消滅はしません)
これは、オブジェクトの大きさを変化させるのですが、回転と同じく、相対変化と絶対変化があります。
相対変化は、現在の大きさの何パーセントの大きさにするか(”1”より小さければ小さくなり、大きければ大きくなります)で決めます。
絶対変化は、大きさをピクセルで指定します。”0”で最小。最大は無限大(実際はメモリに依存))です。
これらは、アニメーションの内容によって使い分けします。
それでは、前回のエクセルを開きましょう。
“スマイル”の外のセルをクリックして、ハンドルをはずしておきます。
つづいて、マクロの作成に入ります。
マクロの記録ボタン (左端)を押して、
マクロ名に「縮小」と入力して「OK」します。
ここからマクロの記録です。
“スマイル”をクリックしてハンドル(周りの小さな白い丸)をつけます。
つづいて、右上のハンドル(白い丸)をクリックしながら左下へドラッグして”スマイル”を小さくします。大きさは適当でいいです。
“記録終了”ボタン(左端(形は四角に変わっています)を押します。
または
つづいて右端の”Visual Basic Editor”ボタンを押して(または、Alt+F11)、エディタを表示させます。
できあがったモジュールはこのようになっていると思います。
Sub 縮小()
'
' 縮小 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.ScaleWidth 0.15, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.15, msoFalse, msoScaleFromBottomRight
End Sub
これだと、いっきに縮小されるので、少しづつ変化するように赤字の部分を修正します。
(回転のときと同じです)
Sub 縮小()
'
' 縮小 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
’初期値(”スマイル”を画面の左上端、直径300ピクセルの大きさに設定します。)
Selection.ShapeRange.Left=0
Selection.ShapeRange.Top=0
Selection.ShapeRange.Width = 300
Selection.ShapeRange.Height = 300
’ここまでが、初期位置の設定です。
For n = 1 To 100 ’縮小を100回繰り返す
Selection.ShapeRange.ScaleWidth 0.95, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.95, msoFalse, msoScaleFromBottomRight
DoEvents
Next
End Sub
これでオブジェクトは小さくなってほとんど見えなくなると思います。
(ただし、パソコンによって大きさが異なる場合がありますから、そのときは”繰り返し回数”を調整してください)
今度は、絶対変化を利用して、いま、小さくした”スマイル”を”拡大”するマクロを作成します。
上のモジュールをコピーして貼り付けます。
これを、下のように赤字部分を修正してください。
Sub 拡大()
'
' 拡大 Macro
' マクロ記録日 : ユーザー名
ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.Left=0
Selection.ShapeRange.Top=0
For n = 1 To 300
Selection.ShapeRange.Width = n
Selection.ShapeRange.Height = n
DoEvents
Next
Cells(1, 1).Select
End Sub
これで、完成です。
[表示]-[ツールバー]-[フォーム]から、ボタンをクリックしてから適当な位置をクリックしてボタンを貼り付けてましょう。
出てきたダイアログボックスのなかの「縮小」をクリックします。
おなじくもう1個ボタンを貼り付けて、「拡大」をクリックします。
これで、“縮小”ボタンを押すと“スマイル”が小さくなり(ほとんど見えなくなります)、“拡大”ボタンを押すと拡大されて見えるようになります。
うまくできましたか?
ここで、これまでいただいた質問中から、ひとつだいじな項目を紹介しておきます。
「”スマイル”がぜんぜん動かない」と言う問い合わせです。
見せていただくと、マクロは正しくても、”オブジェクト名”が違っているケースが一番多いようです。
このシリーズで紹介しているマクロの中では、オブジェクト(”スマイル”)名は、"AutoShape 1"となっています。ただし、”スマイル”を、新しく作ったり、コピーした場合は名前が変わってきます(番号が増えてきます)。
オブジェクト名は、オブジェクトをクリックすると、エクセル画面の左上にある”名前ボックス”に表示されます。それが、"AutoShape 1"以外の場合は、その名前("AutoShape 2"とか、オートシェイプ 3 など)をコピー(Ctrl+C)してモジュールの該当部分(ActiveSheet.Shapes("AutoShape 1").Select)に貼り付ける(Ctrl+V)か、書き換えてください。これが正しくないと動きません。動かない方は、もういちど確認してください。
どうしてもうまく行かない場合は、新しくBookを開いて作成していただくといいでしょう。
次回は、画像切り替え(スライド)を紹介する予定です。