この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。 そこで質問なのですが、 [cord]Sub IfSample06_01() If Range("E7").Value = "男性" Then If Range("G7").Value >= 80 Then Range("H7").Value = "合格です" Else Range("H7").Value = "不合格です" End If Else If Range("G7").Value >= 70 Then Range("H7").Value = "合格です" Else Range("H7").Value = "不合格です" End If End If End Sub[/cord] この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
Sub IfSample06_01()
If Range("E7").Value = "男性" Then
If Range("G7").Value >= 80 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
Else
If Range("G7").Value >= 70 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
End If
End Sub
> この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。 > 追記:コードのスペルを間違えてしまいました。申し訳ございません。
2019/03/14 08:38
小川 慶一さんのコメント
(コメントID: 6090)
受講生 さん:
まずは、レジュメ調べてみてください。 それからまた投稿してください!
> この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。 > そこで質問なのですが、 > [cord]Sub IfSample06_01() > If Range("E7").Value = "男性" Then > If Range("G7").Value >= 80 Then > Range("H7").Value = "合格です" > Else > Range("H7").Value = "不合格です" > End If > Else > If Range("G7").Value >= 70 Then > Range("H7").Value = "合格です" > Else > Range("H7").Value = "不合格です" > End If > End If > End Sub[/cord] > この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
>この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので >どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
そして、僕からの回答は、以下のとおりでした。
該当する箇所は、レジュメで見つかりましたか。 また、読み方と意味は分かりましたか。
以下、はセルE7の値とG7の値を基にして条件分岐しているプログラムです。
'コメント11257でいただいたものを掲載
Sub IfSample06_01()
If Range("E7").Value = "男性" Then
If Range("G7").Value >= 80 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
Else
If Range("G7").Value >= 70 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
End If
End Sub
受講生さんの投稿
(投稿ID: 4434)
そこで質問なのですが、
[cord]Sub IfSample06_01()
If Range("E7").Value = "男性" Then
If Range("G7").Value >= 80 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
Else
If Range("G7").Value >= 70 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
End If
End Sub[/cord]
この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
受講生さんのコメント
(コメントID: 6087)
> この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
> そこで質問なのですが、
> この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
>
追記:コードのスペルを間違えてしまいました。申し訳ございません。
小川 慶一さんのコメント
(コメントID: 6090)
まずは、レジュメ調べてみてください。
それからまた投稿してください!
> この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
> そこで質問なのですが、
> [cord]Sub IfSample06_01()
> If Range("E7").Value = "男性" Then
> If Range("G7").Value >= 80 Then
> Range("H7").Value = "合格です"
> Else
> Range("H7").Value = "不合格です"
> End If
> Else
> If Range("G7").Value >= 70 Then
> Range("H7").Value = "合格です"
> Else
> Range("H7").Value = "不合格です"
> End If
> End If
> End Sub[/cord]
> この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
受講生さんのコメント
(コメントID: 6092)
レジュメは何ページを拝見すればよろしいのでしょうか?
小川 慶一さんのコメント
(コメントID: 6093)
まずは、自分で探してみてください。
> 追加の質問失礼いたします。
> レジュメは何ページを拝見すればよろしいのでしょうか?
小川 慶一さんのコメント
(コメントID: 6097)
以下の件、その後、どうでしょうか?
>まずは、自分で探してみてください。
>
>> 追加の質問失礼いたします。
>> レジュメは何ページを拝見すればよろしいのでしょうか?
受講生さんのコメント
(コメントID: 6103)
考え方としては、IF文の中にもうIF分があるということは、条件割り出しの時にさらに条件を絞って、細かくデータを抽出するって考えでよろしいでしょうか?間違っていたら、どのような解答例なのかをお願いいたします。
(例えば、男性か女性かの条件の中に、さらなる条件として30歳以上か30歳以下かという条件)
小川 慶一さんのコメント
(コメントID: 6105)
当初のご質問は、こういうもの↓でしたね。
>この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので
>どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
そして、僕からの回答は、以下のとおりでした。
該当する箇所は、レジュメで見つかりましたか。
また、読み方と意味は分かりましたか。
以下、はセルE7の値とG7の値を基にして条件分岐しているプログラムです。
このプログラムの挙動は、日本語にすると、以下のとおりです。
○E7の値が"男性"の場合:
・G7の値が80以上ならセルH7に「合格です」と記入する
・G7の値が80以上でなければ、セルH7に「不合格です」と記入する
○E7の値が"男性"でない場合:
・G7の値が70以上ならセルH7に「合格です」と記入する
・G7の値が70以上でなければ、セルH7に「不合格です」と記入する
これ以上簡潔に説明できないのですが、上記については、まだ疑問点がありますか。
> (例えば、男性か女性かの条件の中に、さらなる条件として30歳以上か30歳以下かという条件)
「30歳以上」とかそういう条件はこのサンプルコード内には一切登場していませんね。
「30歳以上」云々というのは、このサンプルコードのこととは別の、何か他の話題でしょうか?
> 考え方としては、IF文の中にもうIF分があるということは、条件割り出しの時にさらに条件を絞って、細かくデータを抽出するって考えでよろしいでしょうか?間違っていたら、どのような解答例なのかをお願いいたします。
間違っています。
「細かくデータを抽出」してはいません。
では、「細かくデータを抽出」ではなく、何をしているのか?
そこついてさらに学ぶには、「動画で何度も確認して、真似をして作ってみる」だけではなく、さらに研究が必要です。
セルE7、セルH7の値を様々に入れ替えてテストをくり返し、そして、さらに考えて、起きていることを表現する適切な日本語を考え、そして、書いてみてください。
どうして、「適切な日本語を考え、そして、書く」ことが重要かというと、それは、そういった「日本語できちんと言いたいことを言う力」のトレーニングも、エクセルVBAの上達には重要だからです。
言語運用能力の向上はエクセルVBAの運用能力向上を助けます。
こういうのは、とてもよいトレーニングになります。できるかぎりがんばってみてください。
参考:エクセルマクロ習得に関係する4つの能力-言語能力
https://www.exvba.com/4skills.php#language
受講生さんのコメント
(コメントID: 6108)
マクロのやりかたの件、かしこまりました。
一旦マクロの言語能力の勉強をしてみます。
分からなければまた質問します。
よろしくお願いします。
小川 慶一さんのコメント
(コメントID: 6109)
ご自身の希望する機能を満たすマクロを試しに書いてみるとよいでしょう。
それで希望する機能が実現できなかったらまた相談に乗ります。
なお、
>さらなる条件として30歳以上か30歳以下かという条件
これだと、30歳の場合どちらに振り分ければよいか決められませんね。
「30歳以上」でないものは「30歳以下」ではなく、「30歳より下」です。
「30歳以下」でないものは「30歳以上」ではなく、「30歳より上」です。
いただいた投稿からは、何の話題転換を示す言葉もなく「自分が例として作った例えの条件」が出てくることもそうですが、上記の「以上」、「以下」という表現が示す範囲への無頓着さからも、言語能力の弱さを感じます。
「マクロの言語能力」というのも、定義があいまいです。
がんばってください。
> 30歳以上というのは自分が例として作った例えの条件です。
> マクロのやりかたの件、かしこまりました。
> 一旦マクロの言語能力の勉強をしてみます。
> 分からなければまた質問します。
> よろしくお願いします。
>