【VBA】棒人間が後ろに歩くアニメーション☆ループと変数の応用
→約 < 1 分で読めるよ〜
ExcelVBAアニメーションを元に、
スリープや、ループと変数の概念について説明します。
動画とソースコードがあるから、
イメージが湧きやすい♪
棒人間をジタバタさせたり、左から右へ歩かせたりもできますよ。
動画
バックします、バックします。
ピーピーピーピー。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal ms As Long) Sub M1() '右から左に歩く Dim time As Long time = 100 Dim i For i = 1 To 12 Sheets("コマ").Range("N1:T17").Copy Sheets("動き").Cells(1, 15 - i).PasteSpecial Sleep time Worksheets("動き").Cells.Clear Sheets("コマ").Range("B1:H17").Copy Sheets("動き").Cells(1, 15 - i).PasteSpecial Sleep time If i <> 12 Then Worksheets("動き").Cells.Clear Next End Sub |
必要なもの
・シート「動き」(シート名だけ変更)
・シート「コマ」にドット絵(部分的に違う絵を2個)
ソースコード
前回の応用編です。
スリープの設定
1 |
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal ms As Long) |
続けて動かすと、一瞬で終わります。
1秒スリープを入れて、適度に再生速度を遅くします。
繰り返し
for文で処理を繰り返します。
「1~12回、同じことをしてね。」と指示してます。
詳しくはVBAで処理を繰り返すには?(For~Next)を見てね。
右から左へ移動
シートに貼り付ける動作は、こちらのコードです。
1 |
Sheets("動き").Cells(1, 15 - i).PasteSpecial |
変数(ループする回数)を利用して、右から左へ動かしています。
i=ループ回数です。
15 からiを引くことによって、徐々に左へ指定してるんですね。
1回目に貼り付ける場所は、セル(1,14)
2回目はセル(1,13)、3回めはセル(1,12)・・・と変わっていきます。
まとめ
ExcelVBAのアニメーションを見てみました。
スリープ、ループと変数の概念は掴めましたか?
ソースコードを修正して、
棒人間をジタバタ、左から右へ歩く、など好きなように動かしてみましょう。
楽しくVBAを理解できますよ。
ここでしか読めない!Pythonエンジニア村上さんへの質問
TwitterやQiitaで話題のエンジニア!
村上さんがエンジニアを目指したきっかけは、「2ch」?!
熱い気持ちが文字からも伝わってくるよ。
Twitterも要チェック☆
50名以上のお話が読めるのは、このブログだけ!
村上さんがエンジニアを目指したきっかけは、「2ch」?!
熱い気持ちが文字からも伝わってくるよ。
Twitterも要チェック☆
50名以上のお話が読めるのは、このブログだけ!