【エクセルVBA】マクロでスロットゲームを作成する方法!

こんにちは、ヒガシです。久しぶりのクソマクロ編です。

 

今回は、以下の動画のようにエクセルVBAを使ってスロットゲームを作成してみましたのでご紹介したいと思います。

 

ぜひ暇つぶしなり、お子様と遊びなりにご活用ください。

 

それではさっそく作り方をご紹介していきましょう。

 

スポンサーリンク

VBAの実行環境を構築しておく

今回はVBAを使ってやっていきます。

VBAを使ったことがない、という方は以下の記事を参考にまずは実行環境の構築を進めましょう。

エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説

 

スポンサーリンク

エクセルシートをスロットゲーム用に整える

以降で紹介するサンプルコードはA1セルからD2セルまでの情報をいろいろと書き換えることによってスロットゲームを作成しています。

 

というわけで今回は以下のように見栄えを整えておきました。

ここは領域(A1セル~D2セル)さえ守っていればどんなデザインにしていても基本的にはOKですので、あなたの好きなようにデザインしてみましょう。

 

スポンサーリンク

スロットゲームのサンプルコード

それでは先ほど作成した領域(A1セル~D2セル)でスロットゲームを実行してくれるサンプルコードをご紹介します。

Sub start_slot()
    Range("D1").Select
    Application.Cursor = 1
    i = 1
    counter = 0
    Ad = 0
    Bd = 0
    Cd = 0
    Range("A1:C2").Interior.Color = RGB(255, 255, 255)
    Do Until ActiveCell.Address = "$D$2" Or counter = 3
        If ActiveCell.Address = "$A$2" And Ad = 0 Then
            counter = counter + 1
            Range("D1").Select
            Ad = 1
            Range("A1").Interior.Color = RGB(255, 255, 0)
            Range("A2").Interior.Color = RGB(255, 0, 0)
        ElseIf Ad = 0 Then
            Cells(1, 1) = i Mod 10
            Application.wait [Now()] + counter / 8640000
            DoEvents
        End If
        
        If ActiveCell.Address = "$B$2" And Bd = 0 Then
            counter = counter + 1
            Range("D1").Select
            Bd = 1
            Range("B1").Interior.Color = RGB(255, 255, 0)
            Range("B2").Interior.Color = RGB(255, 0, 0)
        ElseIf Bd = 0 Then
            Cells(1, 2) = i Mod 10
            Application.wait [Now()] + counter / 8640000
            DoEvents
        End If
        
        If ActiveCell.Address = "$C$2" And Cd = 0 Then
            counter = counter + 1
            Range("D1").Select
            Cd = 1
            Range("C1").Interior.Color = RGB(255, 255, 0)
            Range("C2").Interior.Color = RGB(255, 0, 0)
        ElseIf Cd = 0 Then
            Cells(1, 3) = i Mod 10
            Application.wait [Now()] + counter / 8640000
            DoEvents
        End If
        If i = 9 Then
            i = 1
        Else
            i = i + 1
        End If
    Loop
End Sub

 

今回は見栄えを気にせず殴り書きしたので読みにくいかもですね・・・。

 

また、このマクロは実行するとセルの色が自動で黄色や赤に変化するようになっています。

もし、色を変更したい場合はコード中のRGB(*,*,*)の部分を適宜調整すればOKです。

 

スポンサーリンク

マクロ実行ボタンを作成する

次は先ほどのマクロを実行してくれるボタンを作成しておきましょう。

 

マクロ実行ボタンの作成方法については以下で解説していますので、ご参考ください。

【エクセル】マクロ実行ボタンの作成手順!画像つきで詳細解説!

 

私の場合は以下のように作成しました。

 

スポンサーリンク

スロットマクロの使い方

最後に先ほどのマクロの使い方をご紹介しておきます。

 

①先ほど作成したマクロ実行ボタンでスロット開始

A2,B2,C2セルをクリックでスロット停止(順番はどこからでもOK)

③途中でやめたい場合はD2セルのAll Stopをクリック

④再実行する際は全部止めてから実行する

 

非常に簡単ですね。

 

再度冒頭の動画を計算しておきます。

私は10分くらいやり続けましたが、そろいませんでした・・・。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかって簡単なスロットゲームを作成してみました。

お子さんとぜひ遊んでみてください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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