Ifステートメント

ページ名:Ifステートメント

《 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

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する
ンゴ

見出しはフォントを大きくすると、見やすくなると思います。

返信
2018-10-16 15:38:34

ンゴ

コードに関してですが、

name=cells(2,2)

というのは、

Name = Cells(2, 2)

となりますね。イコールの前後にスペースが必要、Cellsのcは大文字です。

実際にExcelにコードを貼り付けて、大文字・小文字、スペースの有無などを確認したうえで、コードを掲載するようにしましょう。

返信
2018-10-16 15:16:12

ンゴ

冒頭のところで、if構文を使うと何が便利なのかをもう少し強調した方が良いと思いました。例えば、以下のように書いてみたらどうでしょうか?

「プログラムを作成していると、男性と女性で違う処理をするなど、条件に応じて実行する内容を変えたい場合がありますよね。そのような場合には、if構文を使った条件分岐が便利です。

if構文を使えば、ある条件が成り立った場合と、成り立っていない場合で、異なる処理を実行することが可能になります。」

返信
2018-10-16 15:15:51

なおき

良かった点
if then ステートメントの説明がわかりやすく読みやすい点がよく、また比較演算子を表にまとめてあるので参考にしやすいと感じた。
改善点
コード間に余白が多くあるため少し理解しにくい点もあった。インデントの活用などでより読みやすくできると思う。

返信
2018-10-16 14:26:18

seina

良い点
シンプルでわかりやすく、改行を多く使っているのでわかりやすい。色分けやマーカー使いもちょうど良く、わかりやすかった。
改善点
特に見つかりません。

返信
2018-10-16 14:25:39

kakeru

説明がわかりやすくてよかったです。
途中のエラーしやすい場所にもう少し説明が良かったなと思いました。

返信
2018-10-16 14:21:15

名無し

説明がわかりやすいんですが、コードはちょっと読みにくいです。もっと短く、コンパクトにすれば方が読みやすいと思います。

返信
2018-10-16 14:16:29

haruna

良い点
エラーになりやすいところが書いてあるので注意できる。
一文ずつに意味を緑で書いてくれているところ。どういった処理が行われているかわかりやすい。
改善できる点
練習問題がもう少しあると良いと思う。

返信
2018-10-16 14:16:05

NG表示方式

NGID一覧