エクセルアニメーション第16回(応用編8)日の出
2009-06-22
カテゴリー: Weblog
今回は、勇壮な日の出のシーンを作って見ましょう。
手法としては、”移動”と”フェードイン”(透明)です。
暗い夜から朝日が出て明るくなる状況がうまく出せれば成功です。
はじめに[ツール]-[メニュー]-[オプション]-[表示]の”ウインドウオプション”の中の”枠線”のチェックをはずし、画面のセルを消しておきます。
次の順序で配置していきます。
1.空
”図形描画”ツールバーの”四角形”で、B1セルから L15セルまでの四角形を作ります。ただし、PCの解像度などによって大きさを調整してください。
つづいて、四角内で右クリックし、”オートシェイプの書式設定”で [色と線]-[塗りつぶし]-[塗りつぶしの効果]-[グラデーション]として、1色(上)を”黄”、2色(下)を”赤”にして「OK」します。
”線”の”色”で”線なし”にします。空の部分です。
2.太陽
”図形描画”ツールバーの”楕円”をつかって直径約3センチの円を作ります。円を描くときにShiftキーを押しながら描くと真円になります。
つづいて、円内で右クリックし、”オートシェイプの書式設定”で [色と線]-[塗りつぶし]-[塗りつぶしの効果]-[グラデーション]として、1色(上)を”赤”2色(下)を”黄”にして「OK」します。
”線”の”色”で”線なし”にします。
名前を”太陽”として,空の中央に配置しておきます。大体の位置でいいです。
3.海
おなじく、”四角形”で、B15セルからL28セルまで四角を作ります。。空の部分にわずかに重なるように描きます。
つづいて、四角内で右クリックし、”オートシェイプの書式設定”で [色と線]-[塗りつぶし]-[塗りつぶしの効果]-[グラデーション]として、1色を”緑”にして「OK」します。(2色は自動的につきます。)これで海の下の部分が濃い青になります。
”線”の”色”で”線なし”にします。海の部分です。
星は、オートシェイプの”星とリボン”から、”星4”をクリックして海の部分に描きます(空に書くと見にくい)。大きさは一辺を約5ミリにしておいて、塗りつぶしの色を"黄"、”線なし”とします。
これを選択して、Ctrlキーを押しながらドラッグして、10個のコピーを作ります。
名前を”星1”から”星10”までつけておきます。
星をクリックしておいて、名前ボックス(下面の左上)をクリックし、青反転したところで”星1”と入力してEnterします。これを”星10”まで繰り返します。
できあがったら、見本を見ながら空の中に左右、上下、できるだけ順不同でちりばめるように配置してください。
ここで、マクロの原型をを作成しておきましょう。
「ツール」メニュー[マクロ]-[新しいマクロの記録]をクリックします。
そのまま、太陽をクリックして、約1センチ上方へドラッグします。
つづいて、星のうちの一つをクリックして選択(周囲に白丸がついた)状態にして右クリック。オートシェイプの書式設定の”色と線””塗りつぶし””透明”のスライダーを中央(約50%)まで動かしておきます。
「マクロ記録の終了」ボタンを押します。
[ツール]-[マクロ]-[Visual Basic Editor]で確認しておきましょう。
下のようなコードが生成されたと思います。
数字は違っていても問題ありません。赤字の行は不要なのでは削除してください。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : ユーザー名
'
ActiveSheet.Shapes("太陽").Select
’ Selection.ShapeRange.IncrementLeft -1.8
Selection.ShapeRange.IncrementTop -7.2
ActiveSheet.Shapes("星7").Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Transparency = 0.96
’
' Selection.ShapeRange.Line.Weight = 0.75
' Selection.ShapeRange.Line.DashStyle = msoLineSolid
' Selection.ShapeRange.Line.Style = msoLineSingle
' Selection.ShapeRange.Line.Transparency = 0#
' Selection.ShapeRange.Line.Visible = msoFalse
End Sub
ツールバーの”表示Microsoft Excel"ボタンを押して、もう一度、エクセル画面に戻ります。
4.つぎに、空の部分と同じ大きさの”四角形”を作成します。(これが今回の技です)これを、空の部分に重ねます。空の部分が真っ白になったと思います。
四角の中で右クリックし、”オートシェイプの書式設定”の [色と線]-[塗りつぶし]で、「色」を”青”とし、”透明”のスライダーを右いっぱい(100%)に動かしておきます。”線”の”色”で”線なし”にします。これで空が見えてきます。
そのまま(ほかの場所をクリックしないように)"空”として名前をつけておきます。
つぎに、その他の素材つくりをしましょう。
山、波です。
山はオートシェイプの”線”から”フリーハンド”で作成します。
塗りつぶしの色をグラデーションで、上を”緑”、下を”濃い緑”にし、”線なし”にします。名前はいりません。
もう1個コピーして左右に配置します。左の山を”図形の調整の"回転/反転"の”左右反転”で反対向きにして、図のハンドルをドラッグして形を少し変化させます。
最後に波は、オートシェイプの”線”から”フリーハンド”を使って見本を見ながら小さな山形を描いていきます。ひと筆書きですからなれないと難しいかもしれませんがやってみましょう。
これも、星と同じ要領で10個コピーします。色は白のままで、大きさは見本を見ながら適当に伸ばしたり縮めたりしてからランダムに配置します。
名前いりません。
ここまでで、部品がそろいました。
5.ここで、完成図を参考にしながら島と波を最終的に配置してください。
6.最後に外枠部分を”四角形”で作成します。
空と海すべてを正しく囲むように作成します。
”オートシェイプの書式設定”の [色と線]-[塗りつぶし]で”塗りつぶしなし”を指定します。
”線”の”色”から”線のパターン”をクリックし、右下の”ひし形(強調)”をクリックし、”前景”ー黒 ”背景”ー赤に指定します。つづいて”太さ”を「15Pt」にして「OK」します。
これらは、順序を間違うと見えなくなったり、効果が出なくなりますから間違わないようにしてください。
スタート画面
夜明け前の暗い海
終了画面
夏の太陽が昇ったところ
いまは、明るい空の状態で見えるはずです。
それでは、マクロのコードを入れていきましょう。
前回までの要領を参考にしながら間違わないように書いていってください。
先ほど生成されたコードを基本に手直しをしていきます。
なるべく同じコードはコピーをしながら進めると間違いが少なくなると思います。
とくに、名前を間違わないようにしましょう。("'"のついた行は説明です。書かないようにしましょう)
完成コードは次のとおりです。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : ユーザー名 :
'太陽の初期位置
ActiveSheet.Shapes("太陽").Select
Selection.ShapeRange.Top = 230
Selection.ShapeRange.Left = 280
’星の順序
star = 1
For n = 0 To 1 Step 0.01
’空をゆっくり明るくする
ActiveSheet.Shapes("空").Select
Selection.ShapeRange.Fill.Transparency = n
'星の瞬き(消去)
For s = 0 To 1 Step 0.01
ActiveSheet.Shapes("星" & star).Select
Selection.ShapeRange.Fill.Transparency = s
DoEvents
Next
’空が明るくなったら星を消す
If n > 0.6 Then
Mytimer (0.6)
GoTo Mynext
End If
’星の瞬き(出現)
For s = 1 To 0 Step -0.01
ActiveSheet.Shapes("星" & star).Select
Selection.ShapeRange.Fill.Transparency = s
DoEvents
Next
Mynext:
’星の10番まで行ったら1番へ戻す
star = star + 1
If star > 10 Then star = 1
’太陽が昇る
ActiveSheet.Shapes("太陽").Select
Selection.ShapeRange.IncrementTop -0.3
Next
Cells(1, 1).Select
End Sub
'------------------------------------------------------------------
'タイマー(手入力してください)
Sub Mytimer(t)
Mytime = Timer
Do Until Timer > Mytime + t
DoEvents
Loop
End Sub
'------------------------------------------------------------------
さいごに”スタートボタン”を作成します。
[表示]-[ツールバー]-[フォーム]-[ボタン]で画面の適当な場所をクリックして貼り付けます。
マクロの登録画面で”Macro1”を選択して「OK」します。
そのまま、ボタン内を1回クリックしてテキストを「日の出」と修正します。
これで完成です。
参考画面
http://yahoo.jp/box/CAuA6d
次回は中秋の名月を予定しています。おたのしみに・・・




