【超入門】 Excel VBAで絵を動かそう!ワクワクが止まらないプログラミングの第一歩

「仕事で Excel は使っているけど、マクロとかプログラミングはちょっと……」

そう感じている方、多いですよね?
確かに Excel は計算ツールですが、実はこんな「遊び心」が詰まったツールでもあるんです。
 ・セルを自由自在に色付けできる
 ・図形(マルとか四角)を動かしたり、変形させたりできる
 ・効果音や読み上げ音声まで出せる(※少し制限はありますが)
そして、これらを魔法のように操れる「 VBA 」という環境が、最初からおまけで付いています。

仕事に使うなんて、いや、仕事だけに使うなんてもったいない。
新たにソフトを買う必要もありません。

せっかくなので、使い慣れたExcelを「遊び」に使ってみませんか?
ワクワクするプログラミングの世界へ、一歩踏み入れてみましょう!

動くExcel(アニメーション)とは

とりあえず、実際に動いている様子を見ていただいたほうが早いかもしれません。私が作った『動く Excel 』がこちらです!

いかがでしょうか?
まるでゲームのような動きですが、実はこれ、100行にも満たない命令(コード)を書くだけで実現できるんです。

それでは、さっそく準備を始めていきましょう!

準備編

【ステップ1】隠しメニュー「開発」タブを表示させよう

実は、 Excel の標準設定では、プログラミング用のメニューは表示されていません。

Exelの標準設定メニュー

まずは設定を変更して、操作に必要な専用タブを出しましょう。

1. Excel の画面左上にある [ファイル] をクリックします。

2.左下の [オプション] を選択します。

「オプション」の場所

3.左側のメニューから [リボンのユーザー設定] を選びます。

「リボンのユーザー設定」の場所

4.右側のリストにある [開発] にチェックを入れ、[OK] を押します

「開発」メニューの場所

画面上のメニューに「開発」という項目が増えていれば準備完了です。

「開発」メニューが表れたメニューバー

【ステップ2】エディタ(VBE)を起動しよう

次に、プログラムを入力するための専用画面「 VBE (Visual Basic Editor)」を開きます。

  • 操作: [開発] タブの一番左にある [Visual Basic] ボタンを押してください。
  • ショートカット: キーボードの [Alt] + [F11] を同時に押すことでも開けます。

Excel とは別の新しいウィンドウが立ち上がれば成功です。何やら見かけないメニューも多いですが、恐れることはありません。

VBE画面

【ステップ3】「標準モジュール」を作成しよう

プログラムを書き込むための「シート」のようなものを追加します。

  1. VBE 画面の上部メニューから [挿入] をクリックします。
  2. [標準モジュール] を選択します

画面中央に、白い入力スペースが表示されます。ここにプログラムの命令を書き込んでいくことになります。

標準モジュールを選択
プログラム作成画面

【ステップ4】標準モジュールに名前をつけて、Excel シートをセットしよう

これでほぼプログラムを作る準備は整いました。次は、「何を動かしたいのか」に合わせたExcel側のセッティングです。冒頭で紹介した動画のプログラムだと少々複雑なので、まずはとても簡単なものを作ってみます。

こんな感じです!単純ですね。エクセルの「ある列のセルを上から下まで次々に塗りつぶしていく」、というものです。この太字部分がシナリオにあたります。どういったものを作りたいのか、というものなので漠然としたものでもいいのでメモなり簡単にまとめておくとよいですよ。では作り方です。

1.Excelシートを正方形のセルに整えます。行、列それぞれ50くらいあればよいです。列だったら下図のようにA、B、C・・と上のカラムをドラッグして複数の列を選んでおき、その後、どれか1つを縮めるようにすれば一気に同じ幅にすることができます。(他にも方法はあります)

複数の列を選んで、どれか1つの列を縮めると
選んだ列全体が縮まる

2.行も同じようにして、マス(セル)を正方形にしておきます。

セルを正方形のマス目に(方眼紙風)

3.画面の列の真ん中あたり(ここではP列)、に数字の1を入れていきましょう。下では30行まで入れてみました。

P列に1を入れたところ

ディスプレイの解像度によって、縦横同じ長さにしても正方形にならないこともありますので、そこは好みに応じてでいいと思います。これでシートの準備は完了です。

【ステップ5】プログラム(コード)を書き込んでみよう

準備が整いましたので、プログラムの本体を書き込んでいきましょう。
以下のコードをコピーして、先ほど作成した「標準モジュール」の白い画面に貼り付けてください。

このプログラムは、シート上のセルを上から1つずつチェックし、数字の「1」を見つけると、その場所を黒く塗りつぶしていく仕組みになっています。

貼り付けのコツ
下の黒枠内のコードをすべてコピーし、 VBE の画面にそのまま貼り付けるだけでOKです。

vba

Sub 縦に色付け()
    
     ' 変数の準備(整数を入れる箱を作ります)
    Dim i As Integer
    Dim j As Integer
    Dim n As Integer
    Dim max_col As Integer
    Dim itrv_num As Integer
  Dim tmp As String
    
    '横セルの制限
    max_col = 50
    
  '繰り返しの階数
    n = 50
        
    j = 1
    m = 1
    
    '縦の処理
    For i = 1 To n
        '1行処理の度に、0.05秒の待ち時間を置く
        Application.Wait [Now() + "00:00:00.05"]
        
            For j = 1 To max_col
                If Cells(i, j).Value = 1 Then
                    Cells(i, j).Interior.Color = RGB(0, 0, 0)
                End If
            Next
    Next i

End Sub

こんなふうになります。

【ステップ6】プログラムを実行してみよう

コードが貼り付けられたら、いよいよ動かす瞬間です。まずは一番シンプルな方法で実行してみましょう。

  1. VBE(エディタ)の画面を表示します。横に、Excelの画面を並べておくとわかりやすいです。
  2. 貼り付けたプログラム(Sub スクロールしながら色塗() 〜 End Sub)の内側ならどこでも良いので、マウスで一度クリックしてカーソルを置きます。
  3. 画面上部にある [▶](右向きの三角ボタン) (下図の赤マルのところ)をクリックしてください。

こんなふうになりましたでしょうか?

コード中に、
 Application.Wait [Now() + “00:00:00.05”]
という文がありますが、実は、これが無いと速すぎて動きがわからないのです。今回は初回なので、そういうものか、でいいです。コメントアウトしてみると、違いがわかりますので興味ある方は試してみてください。

【ステップ7】もっと便利に!「実行ボタン」を作ろう

毎回エディタを開くのは少し大変ですよね。Excelのシート上に「ポチッ」と押せるボタンを作って、もっと手軽に動かせるようにしてみましょう。

  1. Excelシート上で、[開発] タブをクリックします。
  2. [挿入] をクリックし、一番左上の [ボタン(フォームコントロール)] を選びます。
  1. 「マクロの登録」画面が出るので、先ほど作った [縦に色付け] を選択して [OK] を押します。
  2. シート上の好きな場所で、マウスをドラッグして四角いボタンを配置します。ボタンの名前も「スタート!」などに変えておきましょう。右クリックすると簡単に移動できますよ。

これだけで、次からはそのボタンを押すだけでいつでも絵が動き出します! 初期設定に戻すには、セルは色無しにしておきましょう。

おわりに

いかがでしたか?
事務作業で使うイメージが強いExcelですが、実は自分だけの「動くアート」を作ることもできるんです。

今回はシンプルな色塗りのプログラムでしたが、数字の配置を変えたり、コード内の RGB(0, 0, 0) を変えて色をカラフルにしたりと、アレンジの方法は無限大です。

ぜひ、あなただけの「ワクワクする Excel 」を作って遊んでみてくださいね!


コメント

タイトルとURLをコピーしました