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

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

If文には、あえて言うなら、3つの型があります。
その3つめは、「「ある条件を満たしていないときには別条件について判断する」というパターンです。構想文の中に構造文を入れることもできます。ゆっくりロジックを追いかけていけば、特に難しくないです。人が書いたこういうプログラムを見たとき、全体を眺めるだけで、書いた人の意図をつかめるようになりたいてすね。

【この動画で使用する教材ファイル】
 ・Kiso04_03IfThen
 ・kiso_mm_movie.pdf(P7:主要な「構造」)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。

この教材についての過去の質問・感想

11287 : 小川慶一の回答 (2019-03-20 23:21:37)

受講生 さん:

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

なお、

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

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

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

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

がんばってください。


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


11286 : 受講生さんのコメント (2019-03-20 22:54:54)

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


11280 : 受講生さんのコメント (2019-03-19 08:56:30)

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


11274 : 小川慶一の回答 (2019-03-19 07:21:11)

受講生 さん:

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

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


11264 : 小川慶一の回答 (2019-03-14 15:58:19)

受講生 さん:

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

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


11263 : 受講生さんのコメント (2019-03-14 15:33:53)

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


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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。


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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
>
追記:コードのスペルを間違えてしまいました。申し訳ございません。


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からの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。


11255 : 受講生さんのコメント (2019-03-13 23:28:02)

この度、実際にマクロを初めて動かしながら講座を受講したのですが、考え方から色々と為になりました。
そこで質問なのですが、


10845 : 小川慶一の回答 (2018-12-25 15:07:53)

tyuさん:

以下の書き方が可能です。
基礎編は道具をあれこれ供与するより、道具が少なくても問題解決できる腕力をつけることを狙いとしている講座なので紹介していませんが。

[code]If [条件A] And [条件B] Then
[条件A] と [条件B] の両方が満たされたときの処理
End If

If [条件A] Or [条件B] Then
[条件A] と [条件B] のどちらかが満たされたときの処理
End If[/Code]

よろしくお願いいたします。


> 例として、"都島"を含み性別が"女性"で点数が"70点以上"、のように複数の条件を絞り込みするときに、if文を3重の入れ子とする方法の他に、一度に一つのif文で条件判定することは可能ですか? ワークシート関数で =and() 関数のようなイメージです。


10843 : tyuさんのコメント (2018-12-25 14:49:25)

例として、"都島"を含み性別が"女性"で点数が"70点以上"、のように複数の条件を絞り込みするときに、if文を3重の入れ子とする方法の他に、一度に一つのif文で条件判定することは可能ですか? ワークシート関数で =and() 関数のようなイメージです。


10539 : 小川慶一の回答 (2018-09-02 07:38:16)

Matsumotoさん:

Matsumotoさん:

記号コロン「:」は、複数行を一行にまとめて書くときに使う記号です。

例:

Sub colonsample1()
    Dim hoge
    hoge = 3: Range("A3").Value = hoge + 5: Range("A5").Value = hoge * 7
End Sub


記号コロン「:」に何もなくてもVBAの文法的にはいちおうOKです。

Sub colonsample2()
    Dim hoge
    hoge = 3:
    Range("B3").Value = hoge + 5:
    Range("B5").Value = hoge * 7
End Sub


ではあるのですが、記号コロン「:」には、使うメリットはまったくないに等しいです ヾ(´ー`)ノ

Else: Range("L2").Value = "該当なし"


ご指摘ありがとうございます。修正しておきます。
ひきつづきよろしくお願いいたします。

> ifelseをハナコにする例はかなりシンプルになってよいですね。
> フォローアップ演習の続きが楽しみです。
> また、問題文の回答だと最後に以下一文が入りますね。
> [code]Else: Range("L2").Value = "該当なし"[code]
>
> そこで追加の質問です。今回なぜか、ElseとRangeの間に「:(コロン)」が自動で入ってしまいました。
> マクロ事態は問題なく起動します。これは何が原因でしょう?


10538 : 小川慶一の回答 (2018-09-02 07:33:15)

Matsumotoさん:

こちらこそ、サンプルデータの作り込みの件では、失礼しました。

> 問題文にある「最初に…」を深読みしすぎてドツボにはまっていましたが、そもそもElseif構文が上から順番に処理をして「最初に条件を満たしたものを選択する」構文なのですね。
> マクロが言語という意味が身に沁みました。
> マクロを正確な日本語に置き換えられるか、逆は、
> 日本語(問題文or やりたいこと)を正確なマクロに置き換えれるか
> これはやはり言語ですね。

実際にとりくんでみると、いろいろな気づきが得られますね。

以下の記事も、このタイミングで一読ください。

・エクセルマクロ習得に関係する4つの能力
https://www.exvba.com/4skills.php#language

ひきつづきよろしくお願いいたします。


10537 : Matsumotoさんのコメント (2018-09-01 18:13:28)

初めてコードを文中に書いてみたのですが、
お手本のように反映させるには、sub~endsubまでを[code]で囲む必要があるのですね。
失礼しました。


10536 : Matsumotoさんのコメント (2018-09-01 18:10:41)

ifelseをハナコにする例はかなりシンプルになってよいですね。
フォローアップ演習の続きが楽しみです。
また、問題文の回答だと最後に以下一文が入りますね。
[code]Else: Range("L2").Value = "該当なし"[code]

そこで追加の質問です。今回なぜか、ElseとRangeの間に「:(コロン)」が自動で入ってしまいました。
マクロ事態は問題なく起動します。これは何が原因でしょう?


10535 : Matsumotoさんのコメント (2018-09-01 17:58:50)

早速のご返信ありがとうございました。

問題文にある「最初に…」を深読みしすぎてドツボにはまっていましたが、そもそもElseif構文が上から順番に処理をして「最初に条件を満たしたものを選択する」構文なのですね。

マクロが言語という意味が身に沁みました。

マクロを正確な日本語に置き換えられるか、逆は、
日本語(問題文or やりたいこと)を正確なマクロに置き換えれるか

これはやはり言語ですね。


10534 : 小川慶一の回答 (2018-09-01 08:25:27)

ゲストさん:

なるほど。
それは、申し訳ありませんでした。ドリルのほうは、解答例がファイル内にありませんでした。

以下のとおりです。よろしく、お願いいたします。
(ハナコの例もつけました)

ファイルのほうも修正しておきます。

Option Explicit
'練習1:
Sub renshu1()
    If Range("G2").Value > 50 Then
        Range("H2").Value = "合格"
    Else
        Range("H2").Value = "不合格"
    End If
End Sub

'練習2:
Sub renshu2()
    If Range("E2").Value = "女性" Then
        Range("I2").Value = "OK"
    Else
        Range("I2").Value = "NG"
    End If
End Sub

'練習3:
Sub renshu3()
    If Range("E2").Value = "女性" Then
        Range("I2").Value = "OK"
        Range("A2:J2").Font.Color = vbRed
    Else
        Range("I2").Value = "NG"
        Range("A2:J2").Font.Color = vbBlue
    End If
End Sub

'練習4:
Sub renshu4()
    If Len(Range("C2").Value) >= 6 Then
        Range("J2").Value = "長いです"
    Else
        Range("J2").Value = "長くないです"
    End If
End Sub

'練習5:
Sub renshu5()
    If InStr(Range("B2").Value, "都島") > 0 Then
        Range("J2").Value = "都島グループです"
    End If
End Sub

'練習6:
Sub renshu6()
    If Range("E2").Value = "女性" Then
        If Range("G2").Value >= 70 Then
            Range("H2").Value = "合格"
        Else
            Range("H2").Value = "不合格"
        End If
    Else
        If Range("G2").Value >= 80 Then
            Range("H2").Value = "合格"
        Else
            Range("H2").Value = "不合格"
        End If
    End If
End Sub

'練習7:
'ヒント:If ... ElseIf ... ElseIf ... Else ... End If という構文になります。
Sub renshu7()
    If Range("G2").Value > 80 Then
        Range("L2").Value = Range("C2").Value
    ElseIf Range("G3").Value > 80 Then
        Range("L2").Value = Range("C3").Value
    ElseIf Range("G4").Value > 80 Then
        Range("L2").Value = Range("C4").Value
    ElseIf Range("G5").Value > 80 Then
        Range("L2").Value = Range("C5").Value
    ElseIf Range("G6").Value > 80 Then
        Range("L2").Value = Range("C6").Value
    ElseIf Range("G7").Value > 80 Then
        Range("L2").Value = Range("C7").Value
    ElseIf Range("G8").Value > 80 Then
        Range("L2").Value = Range("C8").Value
    ElseIf Range("G9").Value > 80 Then
        Range("L2").Value = Range("C9").Value
    ElseIf Range("G10").Value > 80 Then
        Range("L2").Value = Range("C10").Value
    ElseIf Range("G11").Value > 80 Then
        Range("L2").Value = Range("C11").Value
    Else
        Range("L2").Value = "該当なし"
    End If
End Sub

'練習1:
Sub renshu1_hanako()
    Dim gyo
    For gyo = 2 To 11
        If Range("G" & gyo).Value > 50 Then
            Range("H" & gyo).Value = "合格"
        Else
            Range("H" & gyo).Value = "不合格"
        End If
    Next
End Sub

'練習2:
Sub renshu2_hanako()
    Dim gyo
    For gyo = 2 To 11
        If Range("E" & gyo).Value = "女性" Then
            Range("I" & gyo).Value = "OK"
        Else
            Range("I" & gyo).Value = "NG"
        End If
    Next
End Sub

'練習3:
Sub renshu3_hanako()
    Dim gyo
    For gyo = 2 To 11
        If Range("E" & gyo).Value = "女性" Then
            Range("I" & gyo).Value = "OK"
            Range("A" & gyo & ":J" & gyo).Font.Color = vbRed
        Else
            Range("I" & gyo).Value = "NG"
            Range("A" & gyo & ":J" & gyo).Font.Color = vbBlue
        End If
    Next
End Sub

'練習4:
Sub renshu4_hanako()
    Dim gyo
    For gyo = 2 To 11
        If Len(Range("C" & gyo).Value) >= 6 Then
            Range("J" & gyo).Value = "長いです"
        Else
            Range("J" & gyo).Value = "長くないです"
        End If
    Next
End Sub

'練習5:
Sub renshu5_hanako()
    Dim gyo
    For gyo = 2 To 11
        If InStr(Range("B" & gyo).Value, "都島") > 0 Then
            Range("J" & gyo).Value = "都島グループです"
        End If
    Next
End Sub

'練習6:
Sub renshu6_hanako()
    Dim gyo
    For gyo = 2 To 11
        If Range("E" & gyo).Value = "女性" Then
            If Range("G" & gyo).Value >= 70 Then
                Range("H" & gyo).Value = "合格"
            Else
                Range("H" & gyo).Value = "不合格"
            End If
        Else
            If Range("G" & gyo).Value >= 80 Then
                Range("H" & gyo).Value = "合格"
            Else
                Range("H" & gyo).Value = "不合格"
            End If
        End If
    Next
End Sub

'練習7:
Sub renshu7_hanako()
    '以下のやり方は、基礎編フォローアップ演習内で扱います
    Dim gyo
    For gyo = 2 To 11
        If Range("G" & gyo).Value > 80 Then
            Range("L2").Value = Range("C" & gyo).Value
            Exit For
        End If
    Next
End Sub



> 8198 の回答内容の趣旨は以下であっていますか?
> kiso04_03IFThen_drill.xlsの練習7に行き詰っていいて、回答を確認できたらと思いました。
>
> kiso04_03IFThen_drill.xls-[daihon0010(コード)]の回答そのものは作成していないので、Kiso04_04IfThenHanako.xlsを参考に自分で考えましょう。
>
>
> Kiso04_04IfThenHanako.xls
>
> をご参照ください!
>
> > お世話になります。
> > 誠に申しわけございませんが、
> > kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
> > していますが、回答はどこに記載しているのかがわかりません。
> > 教えてください。宜しくお願いします


10531 : Matsumotoさんのコメント (2018-08-31 20:02:22)

8198 の回答内容の趣旨は以下であっていますか?
kiso04_03IFThen_drill.xlsの練習7に行き詰っていいて、回答を確認できたらと思いました。

kiso04_03IFThen_drill.xls-[daihon0010(コード)]の回答そのものは作成していないので、Kiso04_04IfThenHanako.xlsを参考に自分で考えましょう。


Kiso04_04IfThenHanako.xls

をご参照ください!

> お世話になります。
> 誠に申しわけございませんが、
> kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
> していますが、回答はどこに記載しているのかがわかりません。
> 教えてください。宜しくお願いします


10200 : 小川慶一の回答 (2018-07-02 09:37:29)

morimotoさん:

基礎編は、基本的な道具を使いこなせるようにということを主眼に作った講座です。
復習もしっかりしてください。演習をひととおり終えた後であれば、気づくこともまたいろいろあるでしょう。


> コードを作る場面では、やはり絶対If関数は出てきますね。
> 条件から判断させまた分岐さて、、、絶対使う関数であるからこそないがしろにはできないなと感じました。
> 何もしてほしくないときはend ifで終わる。、、、非常に大切だと感じました。そして意外によく使う、、、ような気がしました。


10195 : morimotoさんのコメント (2018-07-01 22:20:17)

コードを作る場面では、やはり絶対If関数は出てきますね。条件から
判断させまた分岐さて、、、絶対使う関数であるからこそないがしろにはできないなと感じました。何もしてほしくないときはend ifで終わる。、、、非常に大切だと感じました。そして意外によく使う、、、ような気がしました。


9564 : 小川慶一の回答 (2018-03-11 15:03:50)

受講生 さん:

コメントありがとうございます。
日頃の実務でも、細かい挙動に意識をより向けてみましょう!

> 動画を見て、IF Then 構文を復習しました。
> *IF Then構文では、ひとつの構文の中で複数の分岐を行うことができる。
>
> ・複数の分岐を書くときは、優先的に処理されるべき条件を先に書くことがポイントだと思いました。
>
> ・スッテップインで実行される動画を見て、条件が実行されるとEnd Ifまで飛ぶ動き(流れ)がよくわかりました。


9561 : 受講生さんのコメント (2018-03-09 22:58:55)

動画を見て、IF Then 構文を復習しました。
*IF Then構文では、ひとつの構文の中で複数の分岐を行うことができる。

・複数の分岐を書くときは、優先的に処理されるべき条件を先に書くことがポイントだと思いました。

・スッテップインで実行される動画を見て、条件が実行されるとEnd Ifまで飛ぶ動き(流れ)がよくわかりました。


8821 : 小川慶一の回答 (2017-09-03 15:16:29)

受講生 さん:

お楽しみください☆

> Ifの中にIf
> うわぁー
> やりたいことに近づいてきた。
> 学びます!


8816 : 受講生さんのコメント (2017-08-31 19:51:32)

Ifの中にIf
うわぁー
やりたいことに近づいてきた。
学びます!


8266 : 小川慶一の回答 (2017-05-29 15:43:27)

受講生 さん:

いや、さっきの投稿、違いますね。見ているファイルがもともと違うのか。。

動画で扱っているのは、以下ですね。
Kiso04_03IfThen.xls

で、それとは別に、以下についてご質問をいただいている、ということですね。
Kiso04_03IfThen_drill.xls

これは、 ElseIf が必要です。

> IF...Else...EndIFじゃないのですか?よくわかりません

ということでしたら、まずはそれでやってみてください。
(できないことはないですが。。)

それで、行き詰まるなりやりきれるなりしたら、ご報告ください。
それからいっしょに考えましょう。

> お世話になります。
> IF Elseif Endif 文のところで、Kiso_04_03ifThen_drill.xls-[daihon0010(コード)]の練習7の問題は、
> If文だとおもうのですが、ヒントにIf...Elseif...Elseif...Else...End Ifを使うようになっているのですが、IF...Else...EndIFじゃないのですか?よくわかりません。


8265 : 小川慶一の回答 (2017-05-29 15:39:08)

受講生 さん:

確認しました。

動画の中で扱っているファイルは、 Kiso04_04IfThenHanako.xls ですね。
(ファイル名は、 Kiso04_03IfThen_drill.xls ですが)

ということで、教材の内容に齟齬があるようです。すいません。
修正対応させて、また事務局から連絡させます。

ここでいろいろしている If 文の解説で学ぶよりも、演習をはじめてしまって体感したほうが早いか?とも思います。
なので、事務局からの連絡を待つ間に、先に進んでしまっていただければ、と思います。
恐縮ですが、よろしくお願いいたします。

> お世話になります。
> IF Elseif Endif 文のところで、Kiso_04_03ifThen_drill.xls-[daihon0010(コード)]の練習7の問題は、
> If文だとおもうのですが、ヒントにIf...Elseif...Elseif...Else...End Ifを使うようになっているのですが、IF...Else...EndIFじゃないのですか?よくわかりません。


8249 : 受講生さんのコメント (2017-05-27 18:58:23)

お世話になります。
IF Elseif Endif 文のところで、Kiso_04_03ifThen_drill.xls-[daihon0010(コード)]の練習7の問題は、
If文だとおもうのですが、ヒントにIf...Elseif...Elseif...Else...End Ifを使うようになっているのですが、IF...Else...EndIFじゃないのですか?よくわかりません。


8198 : 小川慶一の回答 (2017-05-24 22:07:09)

受講生 さん:

Kiso04_04IfThenHanako.xls

をご参照ください!

> お世話になります。
> 誠に申しわけございませんが、
> kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
> していますが、回答はどこに記載しているのかがわかりません。
> 教えてください。宜しくお願いします。


8197 : 受講生さんのコメント (2017-05-24 21:53:44)

お世話になります。
誠に申しわけございませんが、
kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
していますが、回答はどこに記載しているのかがわかりません。
教えてください。宜しくお願いします。


7443 : 受講生さんのコメント (2016-12-21 15:25:37)

構文の組み合わせでいろいろなパターンが作れるなと感じました。


6986 : ゲストさんのコメント (2016-08-31 18:10:53)

小川慶一 さん:

>ゲスト さん:
>
>そのネタは、発展編1で扱っています。
>よろしくお願いします。
>
>>お世話様です。
>> for next 構文で 行が可変する場合、固定数字を入れるのではなく、( to. 11 と数字を入力するのではなく)いちいちマクロを修正することなく、対応できる良い方法がありますか?
>
発展編を受講しなければならないってことですね。


6956 : 小川慶一の回答 (2016-08-23 12:33:54)

ゲスト さん:

そのネタは、発展編1で扱っています。
よろしくお願いします。

>お世話様です。
> for next 構文で 行が可変する場合、固定数字を入れるのではなく、( to. 11 と数字を入力するのではなく)いちいちマクロを修正することなく、対応できる良い方法がありますか?


6953 : ゲストさんのコメント (2016-08-22 19:29:50)

お世話様です。
for next 構文で 行が可変する場合、固定数字を入れるのではなく、( to. 11 と数字を入力するのではなく)いちいちマクロを修正することなく、対応できる良い方法がありますか?


6129 : 小川慶一の回答 (2016-03-26 13:43:29)

受講生 さん:

>ここに限らず、コードを書くときコメントなどでにうっかり使用して不具合の要因を作らないように、
>こういうことからも気をつけていきたいと思います(^▽^)/

そうですね。
機種依存文字とか2バイト文字とかを見ただけでゾワゾワするようになってきたら、意識レベルだけで言えば、「中級者の上のほう」て感じです。


6122 : 海上 美弥子さんのコメント (2016-03-25 21:36:19)

小川先生
マル囲み数字は環境依存文字でしたね!
ご指摘ありがとうございました!webだといろいろな環境で受け取るので、ちゃんと考えないとですね。
ここに限らず、コードを書くときコメントなどでにうっかり使用して不具合の要因を作らないように、
こういうことからも気をつけていきたいと思います(^▽^)/
by goosk


6083 : 小川慶一の回答 (2016-03-24 12:33:18)

受講生 さん:

日本語で手順を説明可能であれば、マクロとしても表現できます。
ですから、「別解がいろいろ考えられる」というのはプログラミングでは普通のことです。

あと、細かいアドバイス。

○囲み数字は、機種依存文字なので、ウェブでの投稿に使わないほうがよいです。
僕は、代わりに [1], [2], [3], ... というように、自分でかぎかっこで囲っています。

今日のウェブでは文字コードが進化しているので実際には表示できてしまうのですが、たとえばウェブフォームからのメール送信とかでは文字化けしてしまう可能性高いです。

「IT得意です!プログラミング得意です!」とおっしゃる方がそういうミスをしているのを見ると、僕なんかは、「惜しいな。。」と思いますね。
そこまで気にする相手と仕事するにはそこまで意識されるとよいかと。エントリーシート記入時とかに意識されるとよいです。


>本編終了しました。
>IFが2つ入る構文ですが、作り方は
>①おだんごを作る(”合格です”が指定列に表示されるのを確認する)
>②「80点以上なら合格、それ以外は不合格」のIF文箱をつくり、①をそれぞれに入れてから加工する
>③「もし男性なら」のIF文箱を作り、②をthen以下とelse以下に入れてから加工する
>でいいですよね。
>最初、「もし男性なら」から作ろうとすると行き詰ったので、こちらでやりました。
>短時間集中で、完全マスターをめざします!
>gooska


6026 : 受講生さんのコメント (2016-03-21 18:38:52)

本編終了しました。
IFが2つ入る構文ですが、作り方は
①おだんごを作る(”合格です”が指定列に表示されるのを確認する)
②「80点以上なら合格、それ以外は不合格」のIF文箱をつくり、①をそれぞれに入れてから加工する
③「もし男性なら」のIF文箱を作り、②をthen以下とelse以下に入れてから加工する
でいいですよね。
最初、「もし男性なら」から作ろうとすると行き詰ったので、こちらでやりました。
短時間集中で、完全マスターをめざします!
goosk


4455 : ゲストさんのコメント (2015-06-06 15:26:22)

内容の範囲外かもしれませんが、変数の型を宣言しないのはなぜですか?


3696 : 小川慶一の回答 (2015-01-28 14:23:35)

匿名 さん:

調子よくいっているようで良かったです。
ひきつづきよろしくお願いいたします☆

>基礎編の本編が終わりました。
>オンライン講座のメリットを活かし、同じ動画を何度か繰り返し観て、マクロのパターンを体で覚えました。
>ネットでマクロを上からコピーしてではなく、小さいモノから作り始め、段々拡張していくというやり方だったので、
>一つ一つ意味を理解しながら、マクロを書くことができました。
>ありがとうございます!!


3693 : 受講生さんのコメント (2015-01-27 07:37:47)

基礎編の本編が終わりました。
オンライン講座のメリットを活かし、同じ動画を何度か繰り返し観て、マクロのパターンを体で覚えました。
ネットでマクロを上からコピーしてではなく、小さいモノから作り始め、段々拡張していくというやり方だったので、
一つ一つ意味を理解しながら、マクロを書くことができました。
ありがとうございます!


1709 : 小川慶一の回答 (2014-07-13 14:05:57)

匿名 さん:

なるほど、そういうことなのですね。
「複雑な条件設定をしてフラグを立てる」といったときには、たしかにマクロは便利ですよね。
修正も簡単ですし。

ひきつづき、すばらしい成果を!心から応援しています。



>いいえ、別の仕事です。
>前回の10秒では、4つのプロシージャを実行するのに
>1つずつ終了を確認し次へ行くという動作の中での10秒でした。
>
>今回は、いくつかの条件を組み合わせてフラグを立てるという作業の中で
>フラグの種類が7つ程あり、そこに列を追加し計算を行うというマクロです。
>パーツ化したことで、今回これは無しとか条件変更にも柔軟に対応出来、とても使いやすいです。
>
>実際には、1秒以上かかっているのでしょうけど(笑)ほんと、あっという間で楽しい♪
>あとは、不要な行を削除できるコードが追加されると完璧ですがスキル的にまだ無理っぽいかな。
>
>>匿名 さん:
>>
>>追記です。
>>「1秒で済むようになった」というのは、以前お知らせいただいた、「10秒で済むようになった」という、あのマクロでしょうか? (^^
>>
>>ともあれ、楽しく学んでいただいているようで何よりです (^^*
>


1694 : 受講生さんのコメント (2014-07-12 15:40:20)

いいえ、別の仕事です。
前回の10秒では、4つのプロシージャを実行するのに
1つずつ終了を確認し次へ行くという動作の中での10秒でした。

今回は、いくつかの条件を組み合わせてフラグを立てるという作業の中で
フラグの種類が7つ程あり、そこに列を追加し計算を行うというマクロです。
パーツ化したことで、今回これは無しとか条件変更にも柔軟に対応出来、とても使いやすいです。

実際には、1秒以上かかっているのでしょうけど(笑)ほんと、あっという間で楽しい♪
あとは、不要な行を削除できるコードが追加されると完璧ですがスキル的にまだ無理っぽいかな。

>匿名 さん:
>
>追記です。
>「1秒で済むようになった」というのは、以前お知らせいただいた、「10秒で済むようになった」という、あのマクロでしょうか? (^^
>
>ともあれ、楽しく学んでいただいているようで何よりです (^^*


1680 : 小川慶一の回答 (2014-07-10 06:09:06)

匿名 さん:

追記です。
「1秒で済むようになった」というのは、以前お知らせいただいた、「10秒で済むようになった」という、あのマクロでしょうか? (^^

ともあれ、楽しく学んでいただいているようで何よりです (^^


1678 : 小川慶一の回答 (2014-07-10 06:05:57)

匿名 さん:

おはようございます。
さっそく、2週間で成果がでたのですね。よかったです。

過去のトラウマ..何があったのでしょう (^_^;


ピボットテーブルのマクロ化は、なかなかやっかいです。
自動記録で作ったマクロの中身をきちっと読み切ってメンテナンスできるだけの知識が必要です。そのあたりについては、「発展編1」で扱います。

もっとも、ピボット使わないでも、 For Next 構文と If 文だけでもかなりの集計はできますよ。
フォロー期間まだまだありますので、実務で行き詰まったときにも気軽に相談してください☆



>小川先生
>
>その後、毎朝頂くメルマガのメッセージを参考に10個程のsubプロシージャを作成したのですが
>導入編動画にあった連続技を使ったことで、実行時間を体感1秒までに短縮することが出来ました。
>
>過去のトラウマから、導入編動画を3か月間放置するも面倒な仕事から逃れたい一心で再生。
>「アレッ、小川先生って他の人とは違うかも」と基礎講座を始めてわずか2週間です。
>
>ORやAND、LIKE演算子を使う処理も自分で調べて出来るようになり
>まだフォローアップ講座の途中なので、しばらく先になりそうですが
>発展編の受講でどこまで出来るようになるのか、とても楽しみにしています。
>
>現在の課題は、Pivotのマクロ化。。。です。


1676 : 受講生さんのコメント (2014-07-09 23:37:08)

小川先生

その後、毎朝頂くメルマガのメッセージを参考に10個程のsubプロシージャを作成したのですが
導入編動画にあった連続技を使ったことで、実行時間を体感1秒までに短縮することが出来ました。

過去のトラウマから、導入編動画を3か月間放置するも面倒な仕事から逃れたい一心で再生。
「アレッ、小川先生って他の人とは違うかも」と基礎講座を始めてわずか2週間です。

ORやAND、LIKE演算子を使う処理も自分で調べて出来るようになり
まだフォローアップ講座の途中なので、しばらく先になりそうですが
発展編の受講でどこまで出来るようになるのか、とても楽しみにしています。

現在の課題は、Pivotのマクロ化。。。です。


1471 : 小川慶一の回答 (2014-06-24 00:13:28)

匿名 さん:

こんばんは。

さっそく成果が出たようでなによりです。
スラスラ書け、すんなり動いてくれたということで、僕としても、何度もしつこく解説した甲斐がありました(笑)

手順を踏んで学んでいけば、難しいことはありません。
演習問題も楽しんでください!


1468 : 受講生さんのコメント (2014-06-23 23:58:45)

無事に本編の受講が終了しました。昨日、if文と、for文を練習し早速職場で使いました。何度もしつこく(笑)説明されたおかげで何も見ずにスラスラ書け、すんなり動いてくれて鳥肌が立つくらいテンション上がりました。
単なるコピペ作業なのですが手作業でやると順調に行っても、丸1日以上かかる上にミスが起こりがちで何度も見直さなければならないのですが、マクロ作成に1時間弱、実行10秒で終わっちゃいました。ありがとうございます。
初学の方だと、あまりに簡単で拍子抜けするかもしれませんが、これまで苦労して来た身としては、ほんと奇跡です。
ここまで分かりやすく説明できるのは小川先生だけだと思います。これからも、どうぞ宜しくお願い致します。


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点
    【動画1】 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点 未習得
  2. 【動画2】 基礎講座第1章2 - オブジェクトの指定
    【動画2】 基礎講座第1章2 - オブジェクトの指定 未習得
  3. 【動画3】 基礎講座第1章3 - 色の指定
    【動画3】 基礎講座第1章3 - 色の指定 未習得
  4. 【動画4】 基礎講座第1章4 - コメントの活用
    【動画4】 基礎講座第1章4 - コメントの活用 未習得
  5. 【動画5】 基礎講座第1章5 - 算術演算子
    【動画5】 基礎講座第1章5 - 算術演算子 未習得
  6. 【動画6】 基礎講座第1章6 - 手書きする演習
    【動画6】 基礎講座第1章6 - 手書きする演習 未習得
  7. 【動画7】 基礎講座第1章7 - ワークシート関数との挙動の違い
    【動画7】 基礎講座第1章7 - ワークシート関数との挙動の違い 未習得
  8. 【動画8】 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義
    【動画8】 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義 未習得
  9. 【動画9】 基礎講座第1章9 - 変数を活用するときの注意点
    【動画9】 基礎講座第1章9 - 変数を活用するときの注意点 未習得
  10. 【動画10】 基礎講座第1章10 - 自動データヒント機能
    【動画10】 基礎講座第1章10 - 自動データヒント機能 未習得
  11. 【動画11】 基礎講座第1章11 - テストの方法
    【動画11】 基礎講座第1章11 - テストの方法 未習得
  12. 【動画12】 基礎講座第1章12 - ドリル
    【動画12】 基礎講座第1章12 - ドリル 未習得
  13. 【動画13】 基礎講座第2章1 - 第2章の概要
    【動画13】 基礎講座第2章1 - 第2章の概要 未習得
  14. 【動画14】 基礎講座第2章2 - 文字列とは
    【動画14】 基礎講座第2章2 - 文字列とは 未習得
  15. 【動画15】 基礎講座第2章3 - 文字列操作の基本
    【動画15】 基礎講座第2章3 - 文字列操作の基本 未習得
  16. 【動画16】 基礎講座第2章4 - セルの書式と、値の投入
    【動画16】 基礎講座第2章4 - セルの書式と、値の投入 未習得
  17. 【動画17】 基礎講座第2章5 - 文字列の結合
    【動画17】 基礎講座第2章5 - 文字列の結合 未習得
  18. 【動画18】 基礎講座第2章6 - セルやシートの指定に使われる文字列
    【動画18】 基礎講座第2章6 - セルやシートの指定に使われる文字列 未習得
  19. 【動画19】 基礎講座第2章7 - 日付の扱い
    【動画19】 基礎講座第2章7 - 日付の扱い 未習得
  20. 【動画20】 基礎講座第2章8 - ドリル1
    【動画20】 基礎講座第2章8 - ドリル1 未習得
  21. 【動画21】 基礎講座第2章9 - ドリル2
    【動画21】 基礎講座第2章9 - ドリル2 未習得
  22. 【動画22】 基礎講座第2章10 - ドリル3
    【動画22】 基礎講座第2章10 - ドリル3 未習得
  23. 【動画23】 基礎講座第2章11 - ドリル4
    【動画23】 基礎講座第2章11 - ドリル4 未習得
  24. 【動画24】 基礎講座第2章12 - ドリル5
    【動画24】 基礎講座第2章12 - ドリル5 未習得
  25. 【動画25】 基礎講座第3章1 - マクロを書く人のためのキーボード操作
    【動画25】 基礎講座第3章1 - マクロを書く人のためのキーボード操作 未習得
  26. 【動画26】 基礎講座第3章2 - マクロを書く人のためのショートカットキー操作
    【動画26】 基礎講座第3章2 - マクロを書く人のためのショートカットキー操作 未習得
  27. 【動画27】 基礎講座第3章3 - Left関数、Mid関数、Right関数
    【動画27】 基礎講座第3章3 - Left関数、Mid関数、Right関数 未習得
  28. 【動画28】 基礎講座第3章4 - Len関数、Instr関数
    【動画28】 基礎講座第3章4 - Len関数、Instr関数 未習得
  29. 【動画29】 基礎講座第3章5 - 手書きドリル1(関数の練習)
    【動画29】 基礎講座第3章5 - 手書きドリル1(関数の練習) 未習得
  30. 【動画30】 基礎講座第3章6 - 手書きドリル2(関数の練習)
    【動画30】 基礎講座第3章6 - 手書きドリル2(関数の練習) 未習得
  31. 【動画31】 基礎講座第3章7 - 住所情報を分割する(方針を考える)
    【動画31】 基礎講座第3章7 - 住所情報を分割する(方針を考える) 未習得
  32. 【動画32】 基礎講座第3章8 - 住所情報を分割する(方針の説明)
    【動画32】 基礎講座第3章8 - 住所情報を分割する(方針の説明) 未習得
  33. 【動画33】 基礎講座第3章9 - 住所情報を分割する(実習)
    【動画33】 基礎講座第3章9 - 住所情報を分割する(実習) 未習得
  34. 【動画34】 基礎講座第3章10 - プログラミング実習のまとめ
    【動画34】 基礎講座第3章10 - プログラミング実習のまとめ 未習得
  35. 【動画35】 基礎講座第4章1 - 第4章の概要
    【動画35】 基礎講座第4章1 - 第4章の概要 未習得
  36. 【動画36】 基礎講座第4章2 - ハナコのステップ
    【動画36】 基礎講座第4章2 - ハナコのステップ 未習得
  37. 【動画37】 基礎講座第4章3 - 「For Next構文」を覚える
    【動画37】 基礎講座第4章3 - 「For Next構文」を覚える 未習得
  38. 【動画38】 基礎講座第4章4 - 「For Next構文」の実習
    【動画38】 基礎講座第4章4 - 「For Next構文」の実習 未習得
  39. 【動画39】 基礎講座第4章5 - 「ハナコのステップ」のふりかえり
    【動画39】 基礎講座第4章5 - 「ハナコのステップ」のふりかえり 未習得
  40. 【動画40】 基礎講座第4章6 - If文
    【動画40】 基礎講座第4章6 - If文 未習得
  41. 【動画41】 基礎講座第4章7 - 「If文」の実習
    【動画41】 基礎講座第4章7 - 「If文」の実習 未習得
  42. 【動画42】 基礎講座第4章8 - 比較の条件設定バリエーション
    【動画42】 基礎講座第4章8 - 比較の条件設定バリエーション 未習得
  43. 【動画43】 基礎講座第4章9 - If文のその他の構文その1
    【動画43】 基礎講座第4章9 - If文のその他の構文その1 未習得
  44. 【動画44】 基礎講座第4章10 - If文のその他の構文その2
    【動画44】 基礎講座第4章10 - If文のその他の構文その2 未習得
  45. 【動画45】 補講:複数ファイル間でのデータ転記
    【動画45】 補講:複数ファイル間でのデータ転記 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ