Excelのこととか色々

マクロをどんな Excel ファイルにも実行できるように設定して、3秒かかる操作も1秒で完了。あといろいろ書いてみます・・・

【Excelでじゃんけんゲームを作ろう05】

【Excel/VBAでじゃんけんゲーム05】

f:id:tuna-kichi:20200418165306p:plain

 

じゃんけんゲームの続き第5回です。

前回まででゲームは完成しました。

今回はちょっとだけ改造します。

 

新規フォームの出し方から、ラベルの作成まではこちら↓
www.tuna-kichi.com

 

第2回目 残りのコマンドボタンなどの作成、配置はこちら↓

www.tuna-kichi.com

 

 第3回目 マクロはこちらで紹介してます↓

www.tuna-kichi.com

 

 第4回仕上げです。↓

www.tuna-kichi.com

 

  _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 

勝ち負けの表示と5回勝負オプション

ゲームの勝敗は、勝敗表の数字の累積だけで判断していました。

まぁ、イメージを表示させているので、勝ち負けはすぐにわかるのですが、

それでも、「あなたの勝ち!」のような表示があった方が良くありませんか?

格闘ゲームでも派手に「KO」って出てたりしますし。

 

ということで、「あなた」「Comp」のラベルの隣に

勝ち負けの表示をするようにして、

5回で区切りをつけられるオプションも追加します。

 

こんな感じで。

f:id:tuna-kichi:20200513230831p:plain


勝敗ラベル

「あなた」のラベルをコピぺで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」をクリックしてから、

f:id:tuna-kichi:20200514083828p:plain

 

【ForeColor】の▼をクリックすると、色一覧が表示されます。

色を選択すると、その色のコードが表示されるので、

それをマクロにコピペしてください。

f:id:tuna-kichi:20200514084139p:plain



5回勝負設定

文字通り、5回で一回区切りを付けます。

f:id:tuna-kichi:20200516211725p:plain

チェックボックスにしたので、付けている間は、

どちらかが5勝した時点で、一度終わらせます。

 

チェックボックスはここ。

f:id:tuna-kichi:20200516212148p:plain

 

プロパティはこれ。

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」の直前に書いてください。

そして、じゃんけんゲームを実行すると、こんな感じになります。

f:id:tuna-kichi:20200516220344p:plain

 

画面中央に表示されている、小さい画面が「MsgBox」です。

「OK」を押すと、勝敗ラベルと、勝敗表がリセットされます。

 

 

 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 

Graspyで無料プログラミング講座を受講する