
If 条件 then
Elseif 条件 then
Else
End if
の形を使ったパターン。条件の数にあわせて、Endif条件thenを増やします。何度も出てくる同じフレーズは1個ずつ打たないでコピーペーストする習慣をつけてください。
この講座を含む定額コースに参加するか、この講座を購入することで、講座を利用できるようになります。
定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
学習記録としてメモを残す
質問や感想を投稿する
投稿時に 記号が \ に変換されてしまいますが、気にせず投稿してください。※投稿に必要な権限がありません。
このページへの投稿/コメント
模倣すべきは、完成物ではなく、完成に至るプロセスです。
> 馬鹿正直に入力してたらダメなんですね。こういうちょっとしたところが本当に勉強になります。プログラミング以外のことにも通じますね。
そちらがとても参考になりました。(マウスを使わないなど)
確かにもっと長いマクロを書くときは、この小さな作業の差が後々
大きな差になるので、とても大事だと思いました。
実装作業をシンプルな型に落とし込んでしまえば、思考はコードの中身のほうに集中できます。
こういうところが本当のノウハウなんですよね。。
> 実際の書き方まで動画で解説しているので、
> そちらがとても参考になりました。(マウスを使わないなど)
> 確かにもっと長いマクロを書くときは、この小さな作業の差が後々
> 大きな差になるので、とても大事だと思いました。
質問です。
シート→VBE
VBE→シート間の移動は、
alt+Tabキー以外で、何かありますか?
[Alt] + [F11] です。
エクセルマクロ・VBAを利用するための推奨設定 - VisualBasicEditorの初期設定
https://forum.pc5bai.com/lesson/page/9
の 3:00から6:30くらいにかけて解説しているとおりです。
導入編のMindmapも読み返してみてください。
今読むと、いろいろ学べることもあるかと思います。
> VBEを矢印で動かすように意識してやってます。
> 質問です。
> シート→VBE
> VBE→シート間の移動は、
> alt+Tabキー以外で、何かありますか?
手打ちする中で理解が深まった。
(同じものはコピペで行い、修正する)
・select case構文 すっきりしていて見栄えもいいね。ぜひマスターしたい!
> 手打ちする中で理解が深まった。
狙いがあります。
手打ちする→身体にコードの型を覚え込ませる。
コピペする→身体に、コピペの作法を覚え込ませる。
> ・Elseif 条件 then
> 手打ちする中で理解が深まった。
> (同じものはコピペで行い、修正する)
>
> ・select case構文 すっきりしていて見栄えもいいね。ぜひマスターしたい!
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
いずれにせよ、
真似ができるようになったら先へ、先へ進めています。
大切なところは理解できるようになってきましたし、
先生の真似をしながら記載も出来るようになってきました。
感謝しています。
ポイントだけ示しますね。
前者:
セルに値を出力する命令をしている行がないですね。
入れるとしたら、Nextの手前でしょう。
後者:
変数は、作った直後には値が入っていません。(*)
ですから、 hani = Range("E" & gyo2).Value は、 hani = Range("E").Value という解釈になります。 Range("E") ではセルを特定することができません。
(*) と、基礎編の段階では思っておいてください。
「home、shiftを押しながら↓↓↓、tabでずらして切り取って」は、ゴロもいいので耳に残りやすく助かっています。
基本に忠実に、飽きが来るまで繰り返そうと思います。
ELSEIFは、IFやSelectcaseに比べてコピペ操作が間違いやすいです。
コピペしてから字下げ忘れに気がついたり・・・・。
elseと打ってからのIFフレーズコピーをマスターしたいと思います。
gooska
>ご紹介いただいたので、ElseIfと併せてSelect Caseも反復練習しました。
好きにドンドン学んでください。
興味は学びの最高の調味料ですw
>「home、shiftを押しながら↓↓↓、tabでずらして切り取って」は、ゴロもいいので耳に残りやすく助かっています。
>基本に忠実に、飽きが来るまで繰り返そうと思います。
「かけ算九九」と同じく、身体に染みつかせるべきインフラです。
ぜひw
ifの入れ子は、ifとend ifで指定した方が、分かりやすいと思いますが、いかがでしょうか。
if ... else .. end if は、このフレーズでセットで覚えましょう。
ひとつの箱にモノを入れる箇所が2つあるハコを想像してください。たとえば、お中元でぶどう2房を贈るとします。
1つは巨峰、もう1つはマスカット。
そのとき、1つのハコの中央に区切りがあって、左右に同じようなオブジェクト(この場合はならブドウ)が入りますね。それと同じ感覚です。
>楽しいです。
>ifの入れ子は、ifとend ifで指定した方が、分かりやすいと思いますが、いかがでしょうか。
ただ、楽に書く努力は足りてなかったので、これからその努力をしていきたいです。
後半の select case 楽しそうですね。発展編にたどり着けるように楽しんで進んでいきます。
引き続きよろしくお願いします。
楽するための努力は大切ですw
そもそも、楽するためにプログラム書いているわけですから。基本の方向性は同じです。
発展編も楽しいですよ。お楽しみに☆
>前回の2で昭和、平成に加え、明治、大正もあったらどうなるか考える寄り道をしたので今回はすんなり、書けました。
>ただ、楽に書く努力は足りてなかったので、これからその努力をしていきたいです。
>後半の select case 楽しそうですね。発展編にたどり着けるように楽しんで進んでいきます。
>引き続きよろしくお願いします。
先日はお忙しい中わざわざお電話を下さり、ありがとうございました。
まさか小川先生とお話できるとは思ってもいませんでした。
舞い上がって勝手な要望ばかり言ってしまいました。大変失礼しました。
先日も申し上げましたが、基礎動画視聴による勉強は今のところ順調です。
今日は基礎編フォローアップ動画第3回を視聴しつつキーを叩いていました。
ハナコのステップは(よっぽどのイージーミスをやらかさなければ)スムーズに正解にたどり着ける方法なので、
(いい意味で)強い衝撃を受けました。
今までプログラミングに対して抱いていた、苦手意識のようなものが少し軽くなった感じがします。
達人養成塾のオンライン講座を受講する以前に、
ExcelVBAの本(分かりやすいと評価が高い本です)を何冊か購入して独学したものの、挫折してしまっていたので、
小川先生の丁寧かつ分かりやすい説明はとてもありがたいです。
本を買う前に、最初から小川先生の講座に申し込んでいれば…、という後悔があります。
小川先生のExcelVBA講座は、オンライン講座、DVD講座ともに一つ一つ確実に学習し、
最終的には外部連携講座までマスターしていきたいです。
Web連携講座のオンライン化については、先日確認しました。非常に魅力的な講座だと思いますので、
今取り組んでいる基礎編フォローアップ動画で学習した後に「発展篇1」に(順番通りに)進むか、正直とても迷います。
先日小川先生からお話していただいたことを思い返すと、なおさらWeb連携講座への興味が強くなるところですが…、
「発展篇1」の項目の、
「For Next構文、If文だけでなく、より高度な構造文も状況によって使い分けられるようになる。」
「自動記録機能で作ったマクロを自由に編集できるようになる。」
「for each構文、do loop構文、select case構文 with ステートメント」
「組み立てのノウハウ ハンガリアン記法 より高度な抽象概念を活用できる、より簡単なマクロの書き方のパターン(アルゴリズム)」
このあたりを読んでいるとワクワクしてきますね。
「マクロを書くのが楽しくて仕方がない。」
このレベルに行けたならいいなぁと思います。
来月は勉強時間を多く取れそうなので、基礎編フォローアップ動画をすべて学習し終わった後に、
次の講座を(どちらを受講するかよく思案してから)申し込んで受講していきます。
今後ともよろしくお願いします。
メールありがとうございます。
動画での学習、順調なようでなによりです。
>ハナコのステップは(よっぽどのイージーミスをやらかさなければ)スムーズに正解にたどり着ける方法なので、
>(いい意味で)強い衝撃を受けました。
>今までプログラミングに対して抱いていた、苦手意識のようなものが少し軽くなった感じがします。
本当は、プログラミングも、簡単なことの組み合わせなんですよね。
基礎編のあとは、発展編1に進んでも、Web連携に進んでも、どちらでもよいと思います。
興味と必要性をみてご自身で決めてください。ひきつづきよろしくお願いいたします。
>小川先生こんばんは。××××(××××××)です。
>
>先日はお忙しい中わざわざお電話を下さり、ありがとうございました。
>
>まさか小川先生とお話できるとは思ってもいませんでした。
>舞い上がって勝手な要望ばかり言ってしまいました。大変失礼しました。
>
>先日も申し上げましたが、基礎動画視聴による勉強は今のところ順調です。
>今日は基礎編フォローアップ動画第3回を視聴しつつキーを叩いていました。
>
>ハナコのステップは(よっぽどのイージーミスをやらかさなければ)スムーズに正解にたどり着ける方法なので、
>(いい意味で)強い衝撃を受けました。
>今までプログラミングに対して抱いていた、苦手意識のようなものが少し軽くなった感じがします。
>
>達人養成塾のオンライン講座を受講する以前に、
>ExcelVBAの本(分かりやすいと評価が高い本です)を何冊か購入して独学したものの、挫折してしまっていたので、
>小川先生の丁寧かつ分かりやすい説明はとてもありがたいです。
>本を買う前に、最初から小川先生の講座に申し込んでいれば…、という後悔があります。
>
>小川先生のExcelVBA講座は、オンライン講座、DVD講座ともに一つ一つ確実に学習し、
>最終的には外部連携講座までマスターしていきたいです。
>
>Web連携講座のオンライン化については、先日確認しました。非常に魅力的な講座だと思いますので、
>今取り組んでいる基礎編フォローアップ動画で学習した後に「発展篇1」に(順番通りに)進むか、正直とても迷います。
>
>先日小川先生からお話していただいたことを思い返すと、なおさらWeb連携講座への興味が強くなるところですが…、
>
>「発展篇1」の項目の、
>「For Next構文、If文だけでなく、より高度な構造文も状況によって使い分けられるようになる。」
>「自動記録機能で作ったマクロを自由に編集できるようになる。」
>「for each構文、do loop構文、select case構文 with ステートメント」
>「組み立てのノウハウ ハンガリアン記法 より高度な抽象概念を活用できる、より簡単なマクロの書き方のパターン(アルゴリズム)」
>
>このあたりを読んでいるとワクワクしてきますね。
>「マクロを書くのが楽しくて仕方がない。」
>このレベルに行けたならいいなぁと思います。
>
>来月は勉強時間を多く取れそうなので、基礎編フォローアップ動画をすべて学習し終わった後に、
>次の講座を(どちらを受講するかよく思案してから)申し込んで受講していきます。
>今後ともよろしくお願いします。
だいぶ慣れてきた!!
いいですね。
プログラミング言語の習得では、声に出すことがとても大切です。言語の学習なので、人間の言葉を習得するときと同じ手法がそのまま応用できます。
ひきつづきお楽しみを☆
ElseIf が分かれば、条件分岐についてはいちおう困らなくなります。
ちなみに、発展編1では、 Select Case というのを扱います。
ElseIf をある程度使えるようになった人向けの、よりエレガントな構文です。楽しみにしていてください☆
>なるほど。条件が多数ある場合の”書き順”にちょっと悩んだのでとても参考になりました。
動くものととにかく力業ででも作れたならすばらしいです。
そうなってから else if を知るとというのは、ある意味理想の流れです (^^
ひきつづき、お楽しみを☆
>すべてif構文で書いたのでelse if も使いこなしたいと思います。
Home Sift 下 下 下 箱を作って切り取って タブでずらして 切り取って 貼り付ける
をするときに意識して声に出してみようと思います。
いいですね。
慣れたら簡単です。慣れるまでやってください!!
紙に書いて持ち歩いて、ヒマがあればブツブツ言う、とかもいいですよ。
>かなりマウスを使わずにできるようになってきましたがまだ、切れが悪くて気になります。
>
>Home Sift 下 下 下 箱を作って切り取って タブでずらして 切り取って 貼り付ける
>をするときに意識して声に出してみようと思います。