エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA基礎編
       └ 基礎講座第4章10 - If文のその他の構文その2

基礎講座第4章10 - If文のその他の構文その2

[11256] 2019-03-13 23:35:06 受講生さんからの投稿です。

この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
そこで質問なのですが、
[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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。

 


[11257] 2019-03-13 23:38:44 受講生さんからの投稿です。

受講生 さん:

> この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
> そこで質問なのですが、
>
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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
>
追記:コードのスペルを間違えてしまいました。申し訳ございません。

 


[11261] 2019-03-14 14:04:28 小川慶一さんからの投稿です。

受講生 さん:

まずは、レジュメ調べてみてください。
それからまた投稿してください!


> この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
> そこで質問なのですが、
> [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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。

 


[11263] 2019-03-14 15:33:53 受講生さんからの投稿です。

追加の質問失礼いたします。
レジュメは何ページを拝見すればよろしいのでしょうか?

 


[11264] 2019-03-14 15:58:19 小川慶一さんからの投稿です。

受講生 さん:

まずは、自分で探してみてください。

> 追加の質問失礼いたします。
> レジュメは何ページを拝見すればよろしいのでしょうか?

 


[11274] 2019-03-19 07:21:11 小川慶一さんからの投稿です。

受講生 さん:

以下の件、その後、どうでしょうか?

>まずは、自分で探してみてください。
>
>> 追加の質問失礼いたします。
>> レジュメは何ページを拝見すればよろしいのでしょうか?

 


[11280] 2019-03-19 08:56:30 受講生さんからの投稿です。

動画で何度も確認して、真似をして作ってみました。
考え方としては、IF文の中にもうIF分があるということは、条件割り出しの時にさらに条件を絞って、細かくデータを抽出するって考えでよろしいでしょうか?間違っていたら、どのような解答例なのかをお願いいたします。
(例えば、男性か女性かの条件の中に、さらなる条件として30歳以上か30歳以下かという条件)

 


[11283] 2019-03-20 21:39:19 小川慶一さんからの投稿です。

受講生 さん:

当初のご質問は、こういうもの↓でしたね。

>この構文で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


このプログラムの挙動は、日本語にすると、以下のとおりです。

○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

 


[11286] 2019-03-20 22:54:54 受講生さんからの投稿です。

30歳以上というのは自分が例として作った例えの条件です。
マクロのやりかたの件、かしこまりました。
一旦マクロの言語能力の勉強をしてみます。
分からなければまた質問します。
よろしくお願いします。

 


[11287] 2019-03-20 23:21:37 小川慶一さんからの投稿です。

受講生 さん:

ご自身の希望する機能を満たすマクロを試しに書いてみるとよいでしょう。
それで希望する機能が実現できなかったらまた相談に乗ります。

なお、

>さらなる条件として30歳以上か30歳以下かという条件

これだと、30歳の場合どちらに振り分ければよいか決められませんね。
「30歳以上」でないものは「30歳以下」ではなく、「30歳より下」です。
「30歳以下」でないものは「30歳以上」ではなく、「30歳より上」です。

いただいた投稿からは、何の話題転換を示す言葉もなく「自分が例として作った例えの条件」が出てくることもそうですが、上記の「以上」、「以下」という表現が示す範囲への無頓着さからも、言語能力の弱さを感じます。

「マクロの言語能力」というのも、定義があいまいです。

がんばってください。


> 30歳以上というのは自分が例として作った例えの条件です。
> マクロのやりかたの件、かしこまりました。
> 一旦マクロの言語能力の勉強をしてみます。
> 分からなければまた質問します。
> よろしくお願いします。
>

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ