この記事では、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アカウントを作成して頂くと、登録が ラク です♪
最後までご精読、誠にありがとうございました!!
自己紹介
VBA自作サンプルプログラム集へ戻る
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ
MOSなどの資格試験対策
Comments
“04VBAのIF分岐をドラクエ・メタルスライムで習得!!” への1件のコメント
[…] IFで攻撃レベル分岐 […]