04VBAのIF分岐をドラクエ・メタルスライムで習得!!

この記事では、VBAのIF文による分岐を、ドラクエのメタルスライムを攻撃するという設定で習得します。

メタルスライムのHPを100として、プレイヤーの攻撃レベルが100以上だったらメタルスライムを倒せるというコードを書いていきます。

文字列型変数「敵の名前」に「メタルスライム」と代入して、攻撃レベルに数字を入れて、IF文による分岐をします。

攻撃レベルが100以上の時は、「メタルスライムを倒した!!」と表示させ、それ以外では何も表示させないコードです。

Sub IF文1()
     
  '文字列型変数「敵の名前」と数値型変数「攻撃レベル」を宣言
  Dim 敵の名前 As String, 攻撃レベル As Integer

  '変数「敵の名前」に「メタルスライム」を代入
  敵の名前 = "メタルスライム"

  '攻撃レベルを入力
  攻撃レベル = InputBox("攻撃レベルを入力して下さい。")
       
   'IF文による分岐 100以上かどうか
       If 攻撃レベル >= 100 Then
         MsgBox 敵の名前 & "を倒した!!  "
       End If
   
   End Sub

実行してみます。

まずは100以上の値、120を入力します。

「メタルスライムを倒した!!」とメッセージが表示されました。

今度は100未満の80を入力します。

何も起こりませんでした。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

スカイツリーです。
浅草駅から少し歩いた所から撮りました。


次に、100未満だったら、「少しくたばった。」と表示されるようにElse を用いてコードを修正します。

Sub IF文2()
     
  '文字列型変数「敵の名前」と数値型変数「攻撃レベル」を宣言
  Dim 敵の名前 As String, 攻撃レベル As Integer

  '変数に代入
  敵の名前 = "メタルスライム"

  '攻撃レベルを入力
  攻撃レベル = InputBox("攻撃レベルを入力して下さい。")
       
    'IF文による分岐 100 以上かどうか
       If 攻撃レベル >= 100 Then
         MsgBox 敵の名前 & "を倒した!!  "
     Else '←ここを修正
        MsgBox 敵の名前 & "は、少しくたばった。"
       End If
   
   End Sub

実行してみます。
まずは120を入力すると、先ほどのプログラムと同じように「メタルスライムを倒した!!」と表示されました。

では、80を入力します。

「少しくたばった」と表示されました。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

スカイツリー限定、「ソラカラちゃんパフェ」です。


さらに、100未満であっても、80以上では
「勇者頑張れ!!もう一息!!」というメッセージを表示させます。
また、80未満の場合は、「YOU LOSE….」と表示させます。

Sub IF文3()
     
  '文字列型変数「敵の名前」と数値型変数「攻撃レベル」を宣言
  Dim 敵の名前 As String, 攻撃レベル As Integer

  '変数に代入
  敵の名前 = "メタルスライム"

  '攻撃レベルを入力
  攻撃レベル = InputBox("攻撃レベルを入力して下さい。")
       
    'IF文による分岐 100 以上かどうか
       If 攻撃レベル >= 100 Then
         MsgBox 敵の名前 & "を倒した!!  "
       ElseIf 攻撃レベル>=80 Then  '←ここを修正
         MsgBox "勇者頑張れ!!もう一息!!"
       Else
        MsgBox "YOU LOSE...."
       End If
   End Sub

実行してみます。
少しややこしくなってしまったので、全てのケースでトレースして行きます。

100以上の120を入力すると、

では、80以上の90を入力すると、

最後に、80未満の70を入力すると

この様に、全てのケースのトレースが出来ました。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

写真は、スカイツリーと河津桜です。


最後に、登場したキャラが「メタルモンスター」でしたら、「勇者はメタルモンスターを攻撃した!」と表示して、そうでなければ「こんにちは。」と挨拶をするプログラムを作ります。

Sub IF文4()
     
  '文字列型変数「ターゲット」と「登場キャラ」を宣言
  Dim ターゲット As String, 登場キャラ As String

  '変数ターゲットに「メタルスライム」を代入
  ターゲット = "メタルスライム"

  '登場キャラを入力
  登場キャラ = InputBox("登場キャラを入力して下さい。")
       
    'IF文による分岐 メタルスライムかどうか
       If 登場キャラ = ターゲット Then
         MsgBox "勇者は" & ターゲット & "を攻撃した!!  "
       Else
        MsgBox 登場キャラ & "さん、こんにちは。"
       End If
   End Sub

実行します。
登場キャラに「メタルスライム」と入力すると、

※文字の先頭や後ろにスペースが入っていると、正しく分岐されないので、インプットボックス内にスペースが入っていないかご確認をお願い致します。

この様にメッセージが出力されました。

メタルスライム以外の、例えば「村人」と入力すると、

「こんにちは。」と出力されました。

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

スカイツリーからの眺めです。

ところで、何故普通のスライムではなく「メタルスライム」なのか、ということですが、個人的にはメタルスライムが好きなんですよね。
好きなのにプログラムの中で一杯攻撃しちゃって、メタルスライムさん、
ごめんねm(_ _)m

最後までご精読、誠にありがとうございました!!

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


VBA自作サンプルプログラム集へ戻る

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


MOSなどの資格試験対策