EXCEL マクロ( VBA )を使って、EXCEL のセルを塗りつぶして絵を作ったり、その絵を動かしてみる( アニメーション )実験です。このページでは、基礎編で挙げたものを組み合わせて、少し動きを複雑にしたものを紹介します。詳しい作り方は、それぞれの吹き出しの下に随時追加していきますのでご参考にしてくださいね。
ちょっと応用編
渦巻
真ん中から右回りにグルグルと回る渦を巻くようにセルを塗っていきます。これも基本ループを使ってますが、1マス進んだ毎ごとに次に進める方向を判断して行先を決めています。

渦といっても円じゃなくて、四角状に回っているんですけどね。
もう少し詳しく
基本的には、最初の位置から右回り(↓、←、↑、→)の順に進むようにしたのですが、行きたい方向のセルがすでに色塗りだったら元のままの進行にするようにしました。なので、動く対象のセルには、①今来た方向、②次に進む方向の2つを持たせています。②は一度調べてから決定するので関数化してます。
調べ方は一旦、ループ内で、nxth_pos(※次の矢印パターン) = (cur_pos(※今の矢印パターン) + 1) Mod 4 で次の方向を調べておき、次に移動したい座標に邪魔(色)がなければそのまま、邪魔があれば元(cur_pos)に戻す、などのロジックにしてます。
これを応用すると、もっと複雑な形(たとえば、十字形)の周りをグルグル回す、とかもできそうなのですが、次の方向を決定するロジックを考え直さなければいけないので後回しにしてます。いずれ考えようと思います。
渦巻(色つき)
上だとちょっとつまらないので、角を曲がると違う色になるようにしてみました。

こっちの方が回っている様子がわかりやすいですね!
もう少し詳しく
上の「渦巻」で、進む方向(cur_pos:1~4まであります)毎に、色を変えるロジックを入れます。
Select Case cur_pos
Case 0
Cells(i, j).Interior.Color = RGB(255, 0, 0) ‘赤
…
Case 3
Cells(j, k).Interior.Color = RGB(255, 255, 0) ‘黄
End Select
みたいな感じですね。
渦巻(色つき+グラデーション)
渦巻(色つき)にさらにグラデーションを足してみました。こちらの方が見映えがいいですね。

色付けをするRGB関数の3つの変数(x,y,z)を徐々に変えるようにするとできますよ
似顔絵
「セルに色付け」を絵に応用してみました。これも上から下へループさせたものです。

渦巻よりこっちの方がロジックは単純なんです。
題字(セル左→右へ文字を浮き出す)
No.6とほぼ同じですが、左から右へのループの中で文字を表すようにしています。

斜め線のある字がカクカクしちゃってますね。もっとセル(マス目)を細かく設定すれば、スムーズな線を表すことができそうです。
へのへのもへじ
上の似顔絵を応用したものです。

書き順に表示されるようにしてみたよ。ちょっとだけ複雑。
同心円(花火)
上の「渦巻」を応用して三重円を表示してみました。打ち上げ花火のようにもみえます。今後、本格的に花火を作ってみましょうかね。

タイマーで止めるループ回数の設定がちょっとやっかい。時間かかっちゃたー。
花火(打ちあがるところ)
基本その3(ドットアニメーション)を応用すると、地上から打ち上がるまでの動きを表すことができそうです。

下から上の動きなので、行カウンタをマイナスにしてループさせる必要がありますね。
新たに作ったら、どんどん追加していきますよ。溜まってきましたら解説ページも作りますかね。

コメント