ElseIfを使った条件分岐

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

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

解説

演習問題テーマ:ElseIfを使った条件分岐
 If 条件 then
 Elseif 条件 then
 Else
 End if
の形を使ったパターン。条件の数にあわせて、Endif条件thenを増やします。何度も出てくる同じフレーズは1個ずつ打たないでコピーペーストする習慣をつけてください。

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

10212 : 小川慶一の回答 (2018-07-04 11:45:17)

大ちゃんさん:

模倣すべきは、完成物ではなく、完成に至るプロセスです。


> 馬鹿正直に入力してたらダメなんですね。こういうちょっとしたところが本当に勉強になります。プログラミング以外のことにも通じますね。


10208 : 大ちゃんさんのコメント (2018-07-03 15:39:30)

馬鹿正直に入力してたらダメなんですね。こういうちょっとしたところが本当に勉強になります。プログラミング以外のことにも通じますね。


9182 : 小川慶一の回答 (2017-12-06 20:56:15)

吉川 裕子さん:

実装作業をシンプルな型に落とし込んでしまえば、思考はコードの中身のほうに集中できます。
こういうところが本当のノウハウなんですよね。。

> 実際の書き方まで動画で解説しているので、
> そちらがとても参考になりました。(マウスを使わないなど)
> 確かにもっと長いマクロを書くときは、この小さな作業の差が後々
> 大きな差になるので、とても大事だと思いました。


9181 : ガラパゴスタディー吉川の回答 (2017-12-06 16:40:26)

実際の書き方まで動画で解説しているので、
そちらがとても参考になりました。(マウスを使わないなど)
確かにもっと長いマクロを書くときは、この小さな作業の差が後々
大きな差になるので、とても大事だと思いました。


8929 : 小川慶一の回答 (2017-09-25 16:11:47)

横山 知明さん:

[Alt] + [F11] です。

エクセルマクロ・VBAを利用するための推奨設定 - VisualBasicEditorの初期設定
https://online.pc5bai.com/movie/index/10/9

の 3:00から6:30くらいにかけて解説しているとおりです。

導入編のMindmapも読み返してみてください。
今読むと、いろいろ学べることもあるかと思います。


> VBEを矢印で動かすように意識してやってます。
> 質問です。
>  シート→VBE
>  VBE→シート間の移動は、
> alt+Tabキー以外で、何かありますか?


8921 : 横山 知明さんのコメント (2017-09-24 06:31:54)

VBEを矢印で動かすように意識してやってます。
質問です。
 シート→VBE
 VBE→シート間の移動は、
alt+Tabキー以外で、何かありますか?


8832 : 小川慶一の回答 (2017-09-06 00:07:40)

受講生 さん:

>  手打ちする中で理解が深まった。

狙いがあります。
手打ちする→身体にコードの型を覚え込ませる。

コピペする→身体に、コピペの作法を覚え込ませる。

> ・Elseif 条件 then
>  手打ちする中で理解が深まった。
>  (同じものはコピペで行い、修正する)
>
> ・select case構文 すっきりしていて見栄えもいいね。ぜひマスターしたい!


8827 : 受講生さんのコメント (2017-09-04 21:33:00)

・Elseif 条件 then
 手打ちする中で理解が深まった。
 (同じものはコピペで行い、修正する)

・select case構文 すっきりしていて見栄えもいいね。ぜひマスターしたい!


8738 : 小川慶一の回答 (2017-08-17 17:18:17)

浦山大さん:

ポイントだけ示しますね。

前者:
セルに値を出力する命令をしている行がないですね。
入れるとしたら、Nextの手前でしょう。

後者:
変数は、作った直後には値が入っていません。(*)

ですから、 hani = Range("E" & gyo2).Value は、 hani = Range("E").Value という解釈になります。 Range("E") ではセルを特定することができません。

(*) と、基礎編の段階では思っておいてください。


8736 : 浦山大さんのコメント (2017-08-17 12:22:11)

小川先生、質問です。
select caseのコードを作成しておりました。

Sub renshu()
   Dim gyo3
   For gyo3 = 2 To 11
        Select Case Range("D" & gyo3).Value
            Case Is >= 80
                Range("E" & gyo3).Value = "A判定です"
            Case Is >= 60
                Range("E" & gyo3).Value = "B判定です"
            Case Is >= 40
                Range("E" & gyo3).Value = "C判定です"
            Case Else
                Range("E" & gyo3).Value = "D判定です"
        End Select
   Next
End Sub


↑これは自分で何も見ないで作成できるようになりました。
動作も確認済みです。タブの位置も気にしながら作成しています。

以下、変数に纏めてすっきりさせられないかな、
と思って作成してみました。
しかし、値がExcelに入りませんでした。
F8を押すとエラーもなく最後まで動作はしているようです。

Sub renshu_error1()
   Dim hani
   Dim gyo2
   For gyo2 = 2 To 11
   hani = Range("E" & gyo2).Value
        Select Case Range("D" & gyo2).Value
            Case Is >= 80
                hani = "A判定です"
            Case Is >= 60
                hani = "B判定です"
            Case Is >= 40
                hani = "C判定です"
            Case Else
                hani = "D判定です"
        End Select
   Next
End Sub


変数にしないで実行をすれば通常通りに進みます。
Excelのバージョンは2007です。

質問ばかりで恐縮ですが、
以下のように書くと怒られました。
これは、変数gyo2の中身を指定してあげる前に、
gyo2を使用しようとしているから、
という感覚でいればよいでしょうか?

Sub renshu_error2()
   Dim hani
   Dim gyo2                                 'Range’メソッドは失敗しました’_Gloval’オブジェクト
   hani = Range("E" & gyo2).Value   'gyo2を指定する前にgyo2が出てるから?
   For gyo2 = 2 To 11
        Select Case Range("D" & gyo2).Value
            Case Is >= 80
                hani = "A判定です"
            Case Is >= 60
                hani = "B判定です"
            Case Is >= 40
                hani = "C判定です"
            Case Else
                hani = "D判定です"
        End Select
   Next
End Sub


いずれにせよ、
真似ができるようになったら先へ、先へ進めています。
大切なところは理解できるようになってきましたし、
先生の真似をしながら記載も出来るようになってきました。
感謝しています。


6094 : 小川慶一の回答 (2016-03-24 12:53:20)

受講生 さん:

>ご紹介いただいたので、ElseIfと併せてSelect Caseも反復練習しました。

好きにドンドン学んでください。
興味は学びの最高の調味料ですw

>「home、shiftを押しながら↓↓↓、tabでずらして切り取って」は、ゴロもいいので耳に残りやすく助かっています。
>基本に忠実に、飽きが来るまで繰り返そうと思います。

「かけ算九九」と同じく、身体に染みつかせるべきインフラです。
ぜひw


6041 : 受講生さんのコメント (2016-03-22 15:57:33)

ご紹介いただいたので、ElseIfと併せてSelect Caseも反復練習しました。
「home、shiftを押しながら↓↓↓、tabでずらして切り取って」は、ゴロもいいので耳に残りやすく助かっています。
基本に忠実に、飽きが来るまで繰り返そうと思います。
ELSEIFは、IFやSelectcaseに比べてコピペ操作が間違いやすいです。
コピペしてから字下げ忘れに気がついたり・・・・。
elseと打ってからのIFフレーズコピーをマスターしたいと思います。
gooska


2664 : 小川慶一の回答 (2014-10-06 09:11:56)

野村昭雄 さん:

if ... else .. end if は、このフレーズでセットで覚えましょう。
ひとつの箱にモノを入れる箇所が2つあるハコを想像してください。たとえば、お中元でぶどう2房を贈るとします。
1つは巨峰、もう1つはマスカット。

そのとき、1つのハコの中央に区切りがあって、左右に同じようなオブジェクト(この場合はならブドウ)が入りますね。それと同じ感覚です。

>楽しいです。
>ifの入れ子は、ifとend ifで指定した方が、分かりやすいと思いますが、いかがでしょうか。


2658 : 野村昭雄さんのコメント (2014-10-05 23:58:32)

楽しいです。
ifの入れ子は、ifとend ifで指定した方が、分かりやすいと思いますが、いかがでしょうか。


2602 : 小川慶一の回答 (2014-10-01 04:25:45)

浜口 智之 さん:

楽するための努力は大切ですw
そもそも、楽するためにプログラム書いているわけですから。基本の方向性は同じです。

発展編も楽しいですよ。お楽しみに☆


>前回の2で昭和、平成に加え、明治、大正もあったらどうなるか考える寄り道をしたので今回はすんなり、書けました。
>ただ、楽に書く努力は足りてなかったので、これからその努力をしていきたいです。
>後半の select case 楽しそうですね。発展編にたどり着けるように楽しんで進んでいきます。
>引き続きよろしくお願いします。


2598 : 浜口 智之さんのコメント (2014-09-30 16:00:16)

前回の2で昭和、平成に加え、明治、大正もあったらどうなるか考える寄り道をしたので今回はすんなり、書けました。
ただ、楽に書く努力は足りてなかったので、これからその努力をしていきたいです。
後半の select case 楽しそうですね。発展編にたどり着けるように楽しんで進んでいきます。
引き続きよろしくお願いします。


2013 : 小川慶一の回答 (2014-08-20 06:01:02)

匿名 さん:

いいですね。
プログラミング言語の習得では、声に出すことがとても大切です。言語の学習なので、人間の言葉を習得するときと同じ手法がそのまま応用できます。

ひきつづきお楽しみを☆


2008 : 受講生さんのコメント (2014-08-19 21:28:36)

ひとりPCの前で、ぶつぶつ呪文を唱えています。
だいぶ慣れてきた!!


1789 : 小川慶一の回答 (2014-07-21 06:46:47)

明石 照伸 さん:

ElseIf が分かれば、条件分岐についてはいちおう困らなくなります。

ちなみに、発展編1では、 Select Case というのを扱います。
ElseIf をある程度使えるようになった人向けの、よりエレガントな構文です。楽しみにしていてください☆

>なるほど。条件が多数ある場合の”書き順”にちょっと悩んだのでとても参考になりました。


1782 : 明石 照伸さんのコメント (2014-07-20 19:36:15)

なるほど。条件が多数ある場合の”書き順”にちょっと悩んだのでとても参考になりました。


1086 : 小川慶一の回答 (2014-03-19 21:45:08)

薄木洋祐 さん:

動くものととにかく力業ででも作れたならすばらしいです。
そうなってから else if を知るとというのは、ある意味理想の流れです (^^

ひきつづき、お楽しみを☆

>すべてif構文で書いたのでelse if も使いこなしたいと思います。


1085 : 薄木洋祐さんのコメント (2014-03-19 21:38:32)

すべてif構文で書いたのでelse if も使いこなしたいと思います。


948 : 小川慶一の回答 (2014-01-11 13:16:18)

匿名さん:

いいですね。
慣れたら簡単です。慣れるまでやってください!!

紙に書いて持ち歩いて、ヒマがあればブツブツ言う、とかもいいですよ。

>かなりマウスを使わずにできるようになってきましたがまだ、切れが悪くて気になります。
>
>Home Sift 下 下 下 箱を作って切り取って タブでずらして 切り取って 貼り付ける
>をするときに意識して声に出してみようと思います。


947 : 受講生さんのコメント (2014-01-11 07:05:42)

かなりマウスを使わずにできるようになってきましたがまだ、切れが悪くて気になります。

Home Sift 下 下 下 箱を作って切り取って タブでずらして 切り取って 貼り付ける
をするときに意識して声に出してみようと思います。


757 : ガラパゴスタディー事務局の回答 (2013-10-30 00:01:00)

マモさん:

> ○点以上 >=
> を
> ○点より大きい >
> という間違いをしていました。
> ポカミスをしないように、しっかりと問題文を読もうと思います。

実務でもありますね。こういうこと。
実際には、「○点」のサンプルデータを自分で作って動作確認することになります。(動画ではそこまではしていませんが)


756 : マモさんのコメント (2013-10-30 00:00:00)

マインドマップでelseifを見つけてトライしました。
動画でチェックしたところ
○点以上 >=

○点より大きい >
という間違いをしていました。
ポカミスをしないように、しっかりと問題文を読もうと思います。


755 : ガラパゴスタディー事務局の回答 (2013-08-29 00:01:00)

北嶋さん:

いろいろ応用してください。北嶋さんならガンガンいける思います!


754 : ガラパゴスタディー事務局の回答 (2013-08-29 00:00:00)

小俣さん:

こういうのは、if文の基本が分かってから見ると、「便利だ」と思えますね。
(いきなり全部見せられるとパニクりますが (^^; )

そういえば達人養成塾のマクロ講座はキリマンジャロ的かも。

[1] 登れる標高は高い
[2] 専門的な技術は不要
[3] 人並みの気力・体力があれば達成できる
[4] 体の使い方ができてないてとかなりキツい(*)

(*)PCでの「スムーズに負担なくタイピングできるか」と山登りでの「スムーズに負担なく歩けるか」はある意味同じ。


753 : 北嶋浩行さんのコメント (2013-08-28 00:00:00)

IF-ELSEIF使うとかなりシンプルに書けますね。
IF-ELSEだけを使って課題をやっていたので、今度はIF-ELSEIFを使って課題をやってみようと思います。


752 : 小俣卓生さんのコメント (2013-08-27 00:00:00)

IF elseだけだと入れ子が複雑になって少しパニくりました。
解説動画を見たら、If ElseIf文 とSelect Case文は便利ですねー。

やりたことを実現させるための方法ってほんとたくさんあるんですねー。

わたくしも楽をする努力を惜しまないよう、日々、精進致します。

早くキリマンジャロに登りたいっす。


751 : ガラパゴスタディー事務局の回答 (2013-05-04 00:01:00)

渋谷さん:

> 問題を見て全く手が動かない、という状況にはなりませんでしたが、elseif構文がわからず解説を拝見して「あ~なるほど」と理解することができました。

これは、セミナー本編では扱っていないですからね (^^;

> 先生の解説を拝見するとさくさくマクロを書いていらっしゃり、あまりの小気味良さに快感です。

リズム感をマネしてください。運動技術は、リズム感をマネすることで早く自分のモノにできます。
手が追いつかなくても同じペースでタイプしてみるとよいです。それで、頭の中にあるものがどのように書き出されるかを感じます。


750 : 渋谷さんのコメント (2013-05-04 00:00:00)

問題を見て全く手が動かない、という状況にはなりませんでしたが、elseif構文がわからず解説を拝見して「あ~なるほど」と理解することができました。

先生の解説を拝見するとさくさくマクロを書いていらっしゃり、あまりの小気味良さに快感です。

ありがとうございました。


749 : ガラパゴスタディー事務局の回答 (2013-05-03 00:01:00)

土田さん:

よかったです v^^


748 : ガラパゴスタディー事務局の回答 (2013-05-03 00:00:00)

高橋さん:

> else if を見つけられずに動画を見ました。
> else ifのハコまで見て再トライ。動きました。
> 欲張ってselect case まで見よう見まねでGO。確かにこの方が、構文を覚えればわかりやすいです。

いい感じですねー。


> 「楽するための努力を惜しまない」

いやー、誰にとっても耳の痛い話ではあります..。僕にとっても (^^;
でも、耳の痛いことほど、きちんと向き合うと大きな変化につながりますね (^^;


747 : 土田 信行さんのコメント (2013-05-01 00:01:00)

マインドマップを見てなんとかできました。
2回目より簡単でした。^^v


746 : 高橋 圭子さんのコメント (2013-05-01 00:00:00)

else if を見つけられずに動画を見ました。
else ifのハコまで見て再トライ。動きました。
欲張ってselect case まで見よう見まねでGO。確かにこの方が、構文を覚えればわかりやすいです。
今回は名言を見つけました。
「楽するための努力を惜しまない」
読んで耳が痛くなったところを見ると、今まで惜しんでいたようです。
ありがとうございました。


745 : ガラパゴスタディー事務局の回答 (2013-04-02 00:01:00)

池本さん:

楽しんでるなぁ~。うらやましい。

「ハナコ」の操作はキーボードだけです。そのほうが、マウスを使うより早くて正確です。

どんどん吸収されているようで、こちらとしてもうれしい限り ヾ(´ー`)ノ


744 : 池本利恵さんのコメント (2013-04-02 00:00:00)

こんにちは~!

今日は2回失敗した後、3回目で自力で問題解けました。
home shift 下下下の動作にだいぶ馴れました。
花子さんの加工はマウス全然使ってないです♪

動画をみて確認したのは、
if else構文 でelseifで4個を条件づける
箱を一気に作れるということです。

解けてしまったら(昨日より)簡単だったので、
自力で解けるまであきらめないでよかったです。

day4 楽しみにしていま~す☆


743 : ガラパゴスタディー事務局の回答 (2013-02-14 00:02:00)

豊島さん:

テキスト or マインドマップを参照してください。
マインドマップだと、10枚目「主要な構造」のところです。


742 : 豊島 久博さんのコメント (2013-02-14 00:01:00)

今回のelseif文は、試行錯誤で探すことができました。
が、そろそろ、リファレンスマニュアルか、VBAのホームページでコマンドを探さないといけないかな?と思いました。


740 : ガラパゴスタディー事務局の回答 (2013-02-05 00:00:00)

こんにちは。

そういうときは、動かないマクロをそのままコピペしてこの掲示板から投稿するか、
エクセルファイルをメールで送りつけるかしてください!!(できれば前者)

すぐに返信しますよ。

ご質問は、積極的に。いつでもご遠慮なく ヾ(´ー`)ノ


739 : 高橋由佳さんのコメント (2013-02-04 00:00:00)

「メソッドをサポートしていません」と出てしまいました。
動画を見ながら直していたのですが、エラーは直りませんでした。
kiso06のよくある問題をめくっていると、原因はタイピングが不正確な可能性があるとありました。
手直しに手直しを重ねて、どこをどう直したら良いのかわからなくなったので、また明日作り直してみます。


738 : ガラパゴスタディー事務局の回答 (2012-11-21 00:00:00)

山口さん:

> SHIFT+HOMEキーをあまりつかったことがなかったのですが、とても便利です。

作業効率が根本から変わりますよ。
プレセミナーで紹介した emeditor も、使ってみてください。

同じ操作感で文章書きをできます。
高速&効率的ですよ。


> 結果ちゃんと識別してくれましたが、いろんな構文があって覚えるのが楽しいですね。

基礎編mindmap10枚目、構造について紹介しているページも確認してみてください。
今のタイミングで眺めると、また、理解が深まることと思います。


737 : ガラパゴスタディー事務局の回答 (2012-11-16 00:01:00)

目のつけどころがよいですね (^^


> 動画の解説でコピーを効率良く使うやり方を見てなるほどと思いました。
> コピーひとつとっても、自己流でやるのと、できる人のやり方を実際に見てからするのでは全然違うので、教えていただいてよかったです。

演習時間にお伝えした「可能な限りコピペで済ませる」です (^^

結果的に同じマクロが書き上がるとしても、
手元も違うし、頭の中で起こることもまったく違う、と思っておいてください。

一番内側たる(頭の中で起こること)が整うと、
自ずと、マクロを書くプロセスも整います。


736 : 佐藤 尚子さんのコメント (2012-11-16 00:00:00)

elseifの説明を見た後は何とか自分で書けました~!が、書き直しをしたりして時間がかかりました。
動画の解説でコピーを効率良く使うやり方を見てなるほどと思いました。
コピーひとつとっても、自己流でやるのと、できる人のやり方を実際に見てからするのでは全然違うので、教えていただいてよかったです。


735 : 屋代 有俊さんのコメント (2012-11-11 00:00:00)

2週目。特に問題なく解けました。記述問題なし。


734 : 長江秀展さんのコメント (2012-10-26 00:00:00)

動画を見る前に独自でやった際は
複雑なマクロにはなりましたが、結果解けたので、
「やった解けた!」と調子に乗っていました。

やはりこのような便利な構文があるのですね。


733 : 加藤さんのコメント (2012-10-23 00:01:00)

朝に問題だけ見て「できるかも…」と思って帰宅後すぐ独自でやってみました。全て「B判定です」にしかなりませんでした。
ElseIfを使うのですね、覚えました。マウスを使わず頑張ります。


732 : 竹端博希さんのコメント (2012-10-23 00:00:00)

今日も順調に動画をもとにマクロを作成することが出来たのですが、作成したマクロを見なおすと「.value」を書き忘れていました。しかし、それでも問題無く、マクロが動いたのですが、「.value」は記入しておかないとマズイのでしょうか?


1208 : 受講生さんのコメント (2012-10-10 00:01:00)

IFを入れ子構造にして作ってしまいましたが、やはりスッキリしたものがあるんですね。

Elseif、Selectcaseとも画像みながら復習しました。

「こんなものもあるから」と、発展編のものでも見せてくれると楽しいし、ありがたいです。


1209 : 小川慶一の回答 (2010-10-10 11:05:00)

達人養成塾 小川です。


そうですね。発展編への興味をもってもらいたい、ということもあって
チラ見せしている、という面もありますが、同時に、冗長な場合は
何かもっといい道具があるのでは?と気づいてもらいたい、ということもあって
こんな内容で収録しました。


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

本講座の動画一覧

  1. 【動画1】 If文とForNext構文を組み合わせる
    【動画1】 If文とForNext構文を組み合わせる 未習得
  2. 【動画2】 複数条件を組み合わせた条件分岐
    【動画2】 複数条件を組み合わせた条件分岐 未習得
  3. 【動画3】 ElseIfを使った条件分岐
    【動画3】 ElseIfを使った条件分岐 未習得
  4. 【動画4】 出現回数を数える。CountIf関数がやっていることをマクロで書くと?
    【動画4】 出現回数を数える。CountIf関数がやっていることをマクロで書くと? 未習得
  5. 【動画5】 条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。
    【動画5】 条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。 未習得
  6. 【動画6】 条件に一致するデータを別シートに転記する
    【動画6】 条件に一致するデータを別シートに転記する 未習得
  7. 【動画7】 とびとびに存在するデータを拾って加工する
    【動画7】 とびとびに存在するデータを拾って加工する 未習得
  8. 【動画8】 文字列を加工してデータ転記する(その1)
    【動画8】 文字列を加工してデータ転記する(その1) 未習得
  9. 【動画9】 文字列を加工してデータ転記する(その2)
    【動画9】 文字列を加工してデータ転記する(その2) 未習得
  10. 【動画10】 文字列を加工してデータ転記する(その3)
    【動画10】 文字列を加工してデータ転記する(その3) 未習得
  11. 【動画11】 勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと?
    【動画11】 勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと? 未習得
  12. 【動画12】 残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ
    【動画12】 残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ 未習得
  13. 【動画13】 複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと?
    【動画13】 複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと? 未習得
  14. 【動画14】 文字列を様々に解析して条件分岐
    【動画14】 文字列を様々に解析して条件分岐 未習得
  15. 【動画15】 複数の記号に挟まれた文字列を取り出す
    【動画15】 複数の記号に挟まれた文字列を取り出す 未習得
  16. 【動画16】 各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ
    【動画16】 各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ 未習得
  17. 【動画17】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その1)
    【動画17】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その1) 未習得
  18. 【動画18】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)
    【動画18】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その2) 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ