こんにちは、ヒガシです。久しぶりのクソマクロ編です。
今回は、以下の動画のようにエクセル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をつかって簡単なスロットゲームを作成してみました。
お子さんとぜひ遊んでみてください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント