【EXCEL:VBA】ドット絵で遊ぼう

ドット絵で遊ぼう

この記事では、EXCELのセルを正方形にし、ドット絵を描いて遊ぶ方法について説明しています。

 

好きな絵をドット絵で描き、記録する。

 

次に違うドット絵を描き、記録する。

 

そうやって記録したドット絵を1つ1つ再生すると、パラパラ漫画のようにドット絵が動き出します。

 

 

ちょっとした息抜きにドット絵を描いて、遊んでみましょう。

 

一度この機能を作成しておけば、パラパラ漫画を作成できるようになります。

 

友人や知人などにあなたが作成したパラパラ漫画を見せて、驚かせてみませんか?

 

 

それでは、EXCELでドット絵を描く機能を作成していきましょう。

 

困っている女性

集中して仕事をしているけど、休憩時間に息抜きする方法はないの!?

困っている女性

EXCELって、仕事でしか使えないの?もっと違った使い方があれば教えてよ!!
それなら、セルを正方形にしてドット絵でも描いてみるのどうですか?

解決する男性

困っている女性

ドット絵か・・・。ドット絵はいいのだけど、それって動かないよね?
動きがあったほうがいいのですね。わかりました、それならパラパラ漫画を作りましょう。

解決する男性

VBAを使えば、ドット絵を記録したり、保存しておいたドット絵を1枚ずつ再生できる。

解決する男性

困っている女性

それそれ、早く教えてよ。

 

その前にパラパラ漫画がどういうものか知らない方のために、パラパラ漫画のサンプルを掲載しておきます。

ハートが動くパラパラ漫画

ハートが動くパラパラ漫画

上の画像のように、1つ1つの絵が一定間隔で切り替わり、まるで動いているかのように見えます。

このような機能を今回作成していきます。

もちろん、好きなドット絵を描くことができますので、好きなパラパラ漫画を作ることができます。

例えば、棒人間が動き回るものや、打ち上げ花火が咲き乱れるものなども作ることができます。

 

それでは、EXCELでドット絵を描いたり、パラパラ漫画を作成する機能に必要なものを、1つ1つ順番に説明していきます。

もくじ

1.ドット絵を作成するシートとドット絵データを保存するシートを作成する

まず、必要なシートを2つ用意しましょう。

「メイン」シートを作成する

メインシートを作成する

「メイン」シートを作成する

  1. 「メイン」という名前のシートを作成します。
  2. 他は特になにも、しなくて良いです。

 

「メイン」シートは、ドット絵を描いたり、ドット絵を作成したりするのに利用します。

各セルを正方形に整える作業は、VBAプログラムで作成します。

だから、「メイン」シートという名前のシートがあればそれで良いです。

 

「データ」シートを作成する

「データ」シートを作成する

「データ」シートを作成する

  1. 「データ」という名前のシートを作成します。
  2. 他は特になにも、しなくて良いです。

 

「データ」シートは、「メイン」シートに描いたドット絵のデータを保存するシートになります。

ドット絵のデータを保存する機能をVBAプログラムで作成するので、他には特になにもしなくて良いです。

 

2.ドット絵を描くベースキャンバスを作成する機能をVBAで作成する

それでは、ドット絵を描くベースキャンバスを作成していきましょう。

もちろん、VBAプログラムにベースキャンバスを作成させますので、VBAプログラムを記入していきます。

 

それでは、「Microsoft Visual Basic for Applications」を起動します。

ベースキャンバスを作成するVBAプログラム

ベースキャンバスを作成するVBAプログラム

 

標準モジュールを追加して、以下のソースを書きます。

 

3.描いたドット絵データを保存する機能をVBAで作成する

次に、「メイン」シートに描いたドット絵データを「データ」シートに保存する機能を作成していきます。

もちろん、VBAプログラムでその機能を作成します。

 

ドット絵データを保存するVBAプログラム

ドット絵データを保存するVBAプログラム

標準モジュールに、以下のソースを書きます。

 

4.保存しているドット絵データを再生する機能をVBAで作成する

最後に、「データ」シートに保存されているドット絵データを使って、「メイン」シートにドット絵を作成する機能を作成していきましょう。

もちろん、この機能もVBAプログラムで作成します。

 

ドット絵データを再生するVBAプログラム

ドット絵データを再生するVBAプログラム

 

標準モジュールに、以下のソースを書きます。

 

以上でドット絵データを保存する機能、保存されているドット絵データを再生する機能が完成しました。

あとは、「メイン」シートに好きなドット絵を描いていきましょう。

 

5.ドット絵を描き、再生する方法の説明

ドット絵を描く前に、各セルを正方形にする必要があります。

先ほど作成したVBAプログラム「CreateBase」を動かして、ベースキャンバスを準備しましょう。

ドット絵を描くベースキャンバスを準備する

「開発」タブを選択し、「マクロ」を押します。

作成したVBAプログラムを動かす

作成したVBAプログラムを動かす

 

次に、「CreateBase」を選択し、「実行」ボタンを押します。

ベースキャンバス作成するVBAプログラムを動かす

ベースキャンバス作成するVBAプログラムを動かす

 

しばらくすると、背景色がグレーで30行・30列のベースキャンバスが「メイン」シートに作成されます。

ベースキャンバスが作成された

ベースキャンバスが作成された

 

描いたドット絵を消したい場合は、再度VBAプログラム「CreateBase」を実行すれば、クリアされます。

 

サンプルのドット絵を描く

それでは、準備されたベースキャンバスに簡単なドット絵を描いてみましょう。

以下のような、穴が空いた四角形を描きます。

穴が空いた四角形を描く

穴が空いた四角形を描く

具体的には、以下のようにします。

  • 14行目、14列目のセルの背景色を赤色にする
  • 14行目、15列目のセルの背景色を赤色にする
  • 14行目、16列目のセルの背景色を赤色にする
  • 15行目、14列目のセルの背景色を赤色にする
  • 15行目、16列目のセルの背景色を赤色にする
  • 16行目、14列目のセルの背景色を赤色にする
  • 16行目、15列目のセルの背景色を赤色にする
  • 16行目、16列目のセルの背景色を赤色にする

 

描いたドット絵データを「データ」シートに保存します。

「SaveDotData」を選択し、「実行」ボタンを押します。

ドット絵データを保存する

ドット絵データを保存する

 

しばらくすると、「データ」シートの1列目に数値が書き込まれています。

ドット絵データが保存された

ドット絵データが保存された

この数値は、各セルの背景色の色番号です。

30行、30列分のセルの背景色の色番号が、「データ」シートの1列目に保存されます。

つぎに、ドット絵データを保存すると、「データ」シートの2列目に保存されます。

このようにして保存したドット絵データは、ドット絵の再生時に利用します。

 

次のドット絵を描く前に、ベースキャンバスをクリアしましょう。

「CreateBase」を選択し、「実行」ボタンを押します。

ベースキャンバス作成するVBAプログラムを動かす

ベースキャンバス作成するVBAプログラムを動かす

 

次は、違う場所に穴が空いた四角形を描きます。

ドット絵のサンプル2

ドット絵のサンプル2

具体的には、以下のようにします。

  • 4行目、14列目のセルの背景色を赤色にする
  • 4行目、15列目のセルの背景色を赤色にする
  • 4行目、16列目のセルの背景色を赤色にする
  • 5行目、14列目のセルの背景色を赤色にする
  • 5行目、16列目のセルの背景色を赤色にする
  • 6行目、14列目のセルの背景色を赤色にする
  • 6行目、15列目のセルの背景色を赤色にする
  • 6行目、16列目のセルの背景色を赤色にする

 

描いたドット絵データを「データ」シートに保存します。

「SaveDotData」を選択し、「実行」ボタンを押します。

ドット絵データを保存する

ドット絵データを保存する

しばらくすると、「データ」シートの2列目に数値が書き込まれています。

ドット絵データが2つ保存された

ドット絵データが2つ保存された

 

次のドット絵を描く前に、再度ベースキャンバスをクリアしましょう。

「CreateBase」を選択し、「実行」ボタンを押します。

ベースキャンバス作成するVBAプログラムを動かす

ベースキャンバス作成するVBAプログラムを動かす

 

次も、違う場所に穴が空いた四角形を描きます。

ドット絵のサンプル3

ドット絵のサンプル3

具体的には、以下のようにします。

  • 24行目、14列目のセルの背景色を赤色にする
  • 24行目、15列目のセルの背景色を赤色にする
  • 24行目、16列目のセルの背景色を赤色にする
  • 25行目、14列目のセルの背景色を赤色にする
  • 25行目、16列目のセルの背景色を赤色にする
  • 26行目、14列目のセルの背景色を赤色にする
  • 26行目、15列目のセルの背景色を赤色にする
  • 26行目、16列目のセルの背景色を赤色にする

 

描いたドット絵データを「データ」シートに保存します。

「SaveDotData」を選択し、「実行」ボタンを押します。

ドット絵データを保存する

ドット絵データを保存する

しばらくすると、「データ」シートの3列目に数値が書き込まれています。

ドット絵データが3つ保存された

ドット絵データが3つ保存された

 

とりあえず、3つドット絵データを保存できました。

それでは、保存したドット絵を作成してみましょう。

サンプルのドット絵を再生する

「メイン」シートに切り替えておきます。

それでは、ドット絵データを再生する機能を動かしてみます。

「PlayDotData」を選択し、「実行」ボタンを押します。

ドット絵データを再生する

ドット絵データを再生する

 

どうですか、うまくドット絵が再生されましたか?

 

一通りの動かし方を説明しましたので、あとは好きなドット絵を描いてみてください。

以下に、私が作成したドット絵データを貼っておきます。

試して見たい方は、下のデータをダウンロードしてください。

ダウンロードしたファイルを開き、すべてコピーして、「データ」シートのA1セルに貼り付けしてご利用ください。

ドット絵データ

 

6.ドット絵を描くベースキャンバスを作成するVBAプログラムの説明

それでは、ドット絵を描くベースキャンバスを「メイン」シートに作成するVBAプログラムを説明します。

①「メイン」シートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

そうすることにより、入力するプログラムを短くすることができるからです。

何度も「ThisWorkbook.Sheets(“メイン”)」と入力するより、「shtMain」と入力するほうが少なくてすむからです。

 

②列幅を2で設定する

ここでは、各セルを正方形にするために、セルの列幅を2で設定しています。

 

③行幅を18.75で設定する

ここでは、各セルを正方形にするために、セルの行幅を18.75で設定しています。

 

④背景色にグレーを設定する

ここでは、各セルの背景色をグレーに設定しています。

 

7.描いたドット絵データを保存するVBAプログラムの説明

それでは、描いたドット絵データを「データ」シートに保存するVBAプログラムを説明します。

①「メイン」シートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

そうすることにより、入力するプログラムを短くすることができるからです。

何度も「ThisWorkbook.Sheets(“メイン”)」と入力するより、「shtMain」と入力するほうが少なくてすむからです。

 

②「データ」シートを変数に格納する

ここでは、このあとの処理で何度も使う「データ」シートを変数に格納しています。

 

③「データ」シートに保存されているデータの最大列数+1を取得する

ここでは、ドット絵データを次に保存する列番号を取得しています。

まだ、ドット絵データが1つも保存されていない場合は、列番号1を取得します。

1つでも保存されている場合は、最大列数+1の列番号を取得します。

 

④「データ」シートに「メイン」シートのドット絵データを保存する

ここでは、「メイン」シートの各セルに設定されている背景色の色番号を入手し、「データ」シートに保存しています。

「データ」シートには、1行目から順番に900行目までドット絵データが保存されます。

つまり、「メイン」シートのドット絵データである30行・30列の各セルの背景色の色番号が、「データ」シートの1列の900行に保存されます。

もっと大きなキャンバスを使いたい場合は、この30を50や100に変更すればよいです。

 

8.保存されたドット絵データを再生するVBAプログラムの説明

それでは、「データ」シートに保存されたドット絵データを再生するVBAプログラムを説明します。

①「メイン」シートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

そうすることにより、入力するプログラムを短くすることができるからです。

何度も「ThisWorkbook.Sheets(“メイン”)」と入力するより、「shtMain」と入力するほうが少なくてすむからです。

 

②「データ」シートを変数に格納する

ここでは、このあとの処理で何度も使う「データ」シートを変数に格納しています。

 

③「データ」シートに保存されているドット絵データの最大列数を取得する

ここでは、「データ」シートに保存されているドット絵データの最大列数を取得しています。

なぜなら、どの列までのデータを再生したらよいか把握するためです。

 

④「メイン」シートに保存されているドット絵データを再生する

ここでは、「データ」シートに保存されているドット絵データの背景色の色番号を使って、「メイン」シートの各セルに設定しています。

具体的には、30行・30列のセルに対して、背景色を設定しています。

 

⑤1秒後まで再生を止める

ここでは、ドット絵を1枚再生するたびに、1秒間処理を止めています。

なぜなら、ドット絵の再生が早すぎてパラパラ漫画にならなくなるからです。

 

以上です。

 

いろいろなドット絵を描いて、遊んでみましょう。

 


 

 

最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です