《 Ifステートメントとは? 》
条件式の成立・不成立によって違う処理を実行するコードです。
Ifステートメントを用いると
条件式から
→もし ある条件 を満たしたら
→もし ある条件 を満たさなかったら
で処理を分岐させることができます。
プログラムを作成していると、男性と女性で違う処理をするなど、条件に応じて実行する内容を変えたい場合がありますよね。そのような場合には、if構文を使った条件分岐が便利です。
if構文を使えば、ある条件が成り立った場合と、成り立っていない場合で、異なる処理を実行することが可能になります。
《 Ifステートメントの解説 》
①If~thenステートメント
条件式を満たした場合は処理1を実行します。
条件式を満たさなかった場合は何も実行されません。(→これがif-then~Elseステートメントとの違い)
基本的な形↓
If 条件式 Then
処理1
End if
<使用例>
If 成績 < 60 Then
’もし成績が60未満なら
MsgBox ” 不可です”
’不可ですとメッセージを表示します。
End If
②If-then~Elseステートメント
①の処理に加えて、条件式を満たさなかった場合の処理も設定したい場合は
If-Then~Elseステートメントを使用しましょう。
If 条件式 Then
処理1
Else
処理2
End If
If~Thenステートメントを使用するとこのような形になります。
<使用例>
If 成績 < 60 Then
MsgBox”不可です”
Else
MsgBox”合格”
‘条件を満たさなかった場合、つまり成績が60点以上の場合にはメッセージボックスに「合格です」と表示されます。
End If
《 条件式でつかわれる比較演算子 》
比較演算子とは値と値を比較する時に使います。「大きい」とか「以下」などです。
= |
等しい |
< |
より小さい |
<= |
以下 |
> |
より大きい |
>= |
以上 |
<> |
等しくない |
《 エラーしやすい場所 》
〇条件式ごとに最後にEnd Ifを忘れずに入れましょう。
Dim score
Cells(1, 1) = "成績"
score = Cells(2, 2)
If score >= 90 Then
Cells(2, 4) = "秀"
End If
If score >= 80 And score < 90 Then
Cells(2, 4) = "優"
End If
If score >= 70 And score < 90 Then
Cells(2, 4) = "良"
End If
If score >= 60 And score < 90 Then
Cells(2, 4) = "可"
End If
If score < 60 And score < 90 Then
Cells(2, 4) = "不可"
End If
End Sub
※一行で書く場合はEnd ifは不要です!
下のように↓
If score >= 90 Then Cells(2, 4) = "秀"
《 応用編 》
If Cells(1, 1) Mod 2 = 1 Then
’もしセル(1,1)に入っている数字を2で割ったとき1余る場合
Cells(1, 2) = "奇数"
’セル(1,2)に”奇数”と表示されます。
Else
Cells(1, 2) = "偶数"
’それ以外の場合、’セル(1,2)偶数と表示
End If
End Sub
《 練習問題 》
このif~thenステートメントを用いた条件式をif-then~Elseステートメントを用いて表記しなさい。
Sub namae()
Dim name, sex
Name = Cells(2,2)
If sex =“男” then
Msgbox name &“君”
End If
If sex = “女” then
msgbox name & “さん”
End if
End sub
< 答え >
Dim name, sex
Name = Cells(2,2)
If sex =“男” then
Msgbox name &“君”
Else
Msgbox name &”さん”
End If
参照
基礎から始めるVBA
https://vba-code.net/basic/if/
Office Pro
https://www.officepro.jp/excelvba/basic/index6.html
コメント
最新を表示する
見出しはフォントを大きくすると、見やすくなると思います。
コードに関してですが、
name=cells(2,2)
というのは、
Name = Cells(2, 2)
となりますね。イコールの前後にスペースが必要、Cellsのcは大文字です。
実際にExcelにコードを貼り付けて、大文字・小文字、スペースの有無などを確認したうえで、コードを掲載するようにしましょう。
冒頭のところで、if構文を使うと何が便利なのかをもう少し強調した方が良いと思いました。例えば、以下のように書いてみたらどうでしょうか?
「プログラムを作成していると、男性と女性で違う処理をするなど、条件に応じて実行する内容を変えたい場合がありますよね。そのような場合には、if構文を使った条件分岐が便利です。
if構文を使えば、ある条件が成り立った場合と、成り立っていない場合で、異なる処理を実行することが可能になります。」
良かった点
if then ステートメントの説明がわかりやすく読みやすい点がよく、また比較演算子を表にまとめてあるので参考にしやすいと感じた。
改善点
コード間に余白が多くあるため少し理解しにくい点もあった。インデントの活用などでより読みやすくできると思う。
良い点
シンプルでわかりやすく、改行を多く使っているのでわかりやすい。色分けやマーカー使いもちょうど良く、わかりやすかった。
改善点
特に見つかりません。
説明がわかりやすくてよかったです。
途中のエラーしやすい場所にもう少し説明が良かったなと思いました。
説明がわかりやすいんですが、コードはちょっと読みにくいです。もっと短く、コンパクトにすれば方が読みやすいと思います。
良い点
エラーになりやすいところが書いてあるので注意できる。
一文ずつに意味を緑で書いてくれているところ。どういった処理が行われているかわかりやすい。
改善できる点
練習問題がもう少しあると良いと思う。
NG表示方式
NGID一覧