【Excel/VBAでじゃんけんゲーム05】
じゃんけんゲームの続き第5回です。
前回まででゲームは完成しました。
今回はちょっとだけ改造します。
新規フォームの出し方から、ラベルの作成まではこちら↓
www.tuna-kichi.com
第2回目 残りのコマンドボタンなどの作成、配置はこちら↓
第3回目 マクロはこちらで紹介してます↓
第4回仕上げです。↓
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
勝ち負けの表示と5回勝負オプション
ゲームの勝敗は、勝敗表の数字の累積だけで判断していました。
まぁ、イメージを表示させているので、勝ち負けはすぐにわかるのですが、
それでも、「あなたの勝ち!」のような表示があった方が良くありませんか?
格闘ゲームでも派手に「KO」って出てたりしますし。
ということで、「あなた」「Comp」のラベルの隣に
勝ち負けの表示をするようにして、
5回で区切りをつけられるオプションも追加します。
こんな感じで。
勝敗ラベル
「あなた」のラベルをコピぺで2つ追加して、「あなた」と「Comp」の隣に
配置してください。
あっ、このラベルを追加するために「Computer」を「Comp」に短くしました。
プロパティは以下の通り。
「あなた」からコピーすればフォントは変更する必要はありません。
Caption | オブジェクト名 | フォントサイズ | フォントスタイル |
(空白) | lblYouResult | 12 | 太字 |
(空白) | lblCompResult | 12 | 太字 |
このラベルに「勝ち」「負け」「引分け」を表示していきます。
マクロ
***************************************************************
Select Case You
Case Is = 1 'あなたがグー
If Comp = 1 Then 'Compがグーのとき
lblDraw.Caption = lblDraw.Caption + 1
lblYouResult.Caption = "引分け"
lblYouResult.ForeColor = &H80000012 '黒色
lblCompResult.Caption = "引分け"
lblCompResult.ForeColor = &H80000012 '黒色
ElseIf Comp = 2 Then 'Compがチョキのとき
lblWin.Caption = lblWin.Caption + 1
lblYouResult.Caption = "勝"
lblYouResult.ForeColor = &HFF& '赤色
lblCompResult.Caption = "負"
lblCompResult.ForeColor = &HFF0000 '青色
Else 'Compがパーのとき
lblLose.Caption = lblLose.Caption + 1
lblYouResult.Caption = "負"
lblYouResult.ForeColor = &HFF0000 '青色
lblCompResult.Caption = "勝"
lblCompResult.ForeColor = &HFF& '赤色
***************************************************************
青字の箇所が追加したところです。
Result・・・結果
ForeColor・・・前景色
Fore・・・前方、前の
このマクロを、「Case Is = 2」と「Case Is =3」 にも追加してください。
勝ち、負け、引分けの位置が変わりますので、気を付けて。
勝ちは赤字、負けは青字、引分けは黒字で表示です。
赤色:&HFF&
青色:&HFF0000
黒色:&H80000012
色を指定するコードは、プロパティから取得できます。
ラベルの「lblYouResult」をクリックしてから、
【ForeColor】の▼をクリックすると、色一覧が表示されます。
色を選択すると、その色のコードが表示されるので、
それをマクロにコピペしてください。
5回勝負設定
文字通り、5回で一回区切りを付けます。
チェックボックスにしたので、付けている間は、
どちらかが5勝した時点で、一度終わらせます。
チェックボックスはここ。
プロパティはこれ。
Caption | オブジェクト名 | フォントサイズ | フォントスタイル |
5回勝負 | chFiveTimes | 12 | 太字 |
マクロ
***************************************************************
If chFiveTimes.Value = True Then '5回勝負にチェックが入っていて
If lblWin.Caption = 5 Then '勝ちのラベルが5になったら、
MsgBox "あなたの勝ちです。" '「あなたの勝ちです。」と表示する
Call cmdReset_Click '勝敗表をリセットさせるコードを呼び出す
lblYouResult.Caption = "" 'あなたの勝敗ラベルを空白にする
lblCompResult.Caption = "" 'Compの勝敗ラベルを空白にする
ElseIf lblLose.Caption = 5 Then '負けのラベルが5になったら、
MsgBox "あなたの負けです。" '「あなたの勝ちです。」と表示する
Call cmdReset_Click
lblYouResult.Caption = ""
lblCompResult.Caption = ""
End If
End If
End Sub
***************************************************************
っていう、コードです。
Value・・・値、価値
Caption・・・短い説明文、字幕(ここではラベルに表示する文字列)
MsgBox は Message Boxのことで、ダブルクオーテーション(”)で囲んだ
文字列を表示させます。
このコードを「End Sub」の直前に書いてください。
そして、じゃんけんゲームを実行すると、こんな感じになります。
画面中央に表示されている、小さい画面が「MsgBox」です。
「OK」を押すと、勝敗ラベルと、勝敗表がリセットされます。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
英語 x エンジニア = 最強
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/