
For Next構文と異なり、「ナカに入れる」のときに、入れる箇所が1つとは限らないです。4:25くらいでやっている作業の様子からしっかり学んでください。
【この動画で使用する教材ファイル】
・Kiso04_03IfThen
・kiso_mm_movie.pdf(P7:主要な「構造」)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。
この講座を含む定額コースに参加するか、この講座を購入することで、講座を利用できるようになります。
定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
学習記録としてメモを残す
質問や感想を投稿する
投稿時に 記号が \ に変換されてしまいますが、気にせず投稿してください。※投稿に必要な権限がありません。
このページへの投稿/コメント
> コーディングの途中で行うテスト回数が圧倒的に多い。見習いたい。
おー!そこに反応しますか!
そうです。まさに、重要ポイントはそこです。
早く正確にコーディングするには、開発環境標準機能を活用しまくって着実に進捗する方法を採用することです v(^_^*
For next構文を作る際に、勝手に手が動いたので自分でもびっくりです!(if文はまだ考えながらという感じですが)
「かけ算九九」とか「二次方程式の解の公式」とか同じです。
理解科目上達の秘訣は、基礎になる技術を身体に覚えさせることです。
> [感想]
> For next構文を作る際に、勝手に手が動いたので自分でもびっくりです!(if文はまだ考えながらという感じですが)
何も悩まずできるもんですね。このハナコステップの視点はすごいです。
リアルの仕事でも同じですね。ひとつひとつの工程をしっかり完了させてから次に向かうほうが頭が混乱しにくいです。
> if thenとfor nextの組み合わせでよくある基本事例ですが、実際書いてみるとend ifより先にnextなのか後にnextなのか、、、だめだったら先後いれかえようと中途半端な理解でやってましたが、このハナコステップと「if then」で1つの箱、「for next」で1つの箱と考えれば
> 何も悩まずできるもんですね。このハナコステップの視点はすごいです。
そこで、同じように記入するところは、変数a,bでいいかな?と思い、
以下のようにしてみましたが、range("h" & c) には値が入って
きませんでした。
エラーは出ていないのですが、変数の使い方に問題があるので
しょうか?
変数a,bのところをrange~とすればきちんと実行されます。
よろしくお願いいたします。
Sub ren()
Dim a
Dim b
Dim c
For c = 2 To 11
a = Range("g" & c).Value
b = Range("h" & c).Value
If a > 70 Then
b = "合格"
ElseIf a >= 50 Then
b = "まあまあ"
Else
b = "不合格"
End If
Next
End Sub
おつかれさまです (^^*
Dim b で b という変数を作りましたね。
b = Range("h" & c).Value で、 b に、 Range("h" & c) の値を投入しましたね。
しかし、その後に変数 b の値が変わったからといって、 Range("h" & c) の値は変わりません。
この説明でピンとこないようでしたら、以下の動画をもう一度見直して、こびとちゃんシートを使って手書き演習してみてください。
○ 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義
https://forum.pc5bai.com/lesson/page/104
○基礎講座第1章9 - 変数を活用するときの注意点
https://forum.pc5bai.com/lesson/page/105
それでもピンとこなかった場合は、またご質問ください。
そのためには大事なのは、はじめの おだんご 作りだ!
お団子だけに集中すればOKです。
あとは頭を使わないでも勝ってにうまく行きます☆
> 一気にできると気持ちが良い!
> そのためには大事なのは、はじめの おだんご 作りだ!
先にお団子を作るやり方で、マクロ作成の順番がわかってきました。ありがとうございます。
For next構文 if文を使う場合、for next 構文が外側、if文が内側に来るという型で覚えて差し支え無いでしょうか?if文が外側に来ることもあるのでしょうか?
また、カテゴリ違いなのですが、
あるパスの特定のフォルダ、ファイルを開くというマクロはどのように書けばよろしいでしょうか?
どうぞよろしくお願い致します。
コメントありがとうございます。
>For next構文 if文を使う場合、for next 構文が外側、if文が内側に来るという型で覚えて差し支え無いでしょうか?if文が外側に来ることもあるのでしょうか?
試してみてください。
それで行き詰まるようでしたら、またご質問を。
そのときには、どのような調査をその後したのか?その結果、どういう理解をしたのか?もお知らせください。
>また、カテゴリ違いなのですが、
>あるパスの特定のフォルダ、ファイルを開くというマクロはどのように書けばよろしいでしょうか?
エクセルファイルやCSVファイルなどのエクセルで開けるファイルを開くというだけであれば、導入編で紹介した自動記録機能を使ってもそれなりに動くマクロは得られます。
そのようにして得られたマクロをまずはご自身で解析してみてください。
基礎編本編の第1章でも、エクセルファイルを開く方法を紹介しています。再度チェックしていただければと。
また、基礎編受講生向けに用意した以下の演習でも、「所定のフォルダにあるエクセルファイルを開く」といった操作を実現するマクロを実習形式で学べるようにしています。
動画その27「転記先ファイルを生成してデータを流し込む。」以降です。
https://forum.pc5bai.com/lesson/course/27
「エクセルファイルやCSVファイルなどとは異なり、エクセルでは通常開けない形式のファイル」や「フォルダ」の開き方については、基礎編では扱っていません。
基礎編は、エクセルファイルの処理をできるようになることをターゲットにしている講座だからです。
フォルダ操作、テキストファイルやWordファイル等のエクセルでは通常開けないファイルの操作については、以下に紹介する上級講座で扱っています。
http://www.exvba.com/gaibu.php
とはいえ、マクロを書いた経験がそこそこにないと使いこなせないので、そういう意味でも、いずれはそういう技術をすんなり理解できるようになるべく、まずは基礎編とそのフォローアップ演習に集中していただければと。
>For next構文 if文を使う場合、for next 構文が外側、if文が内側に来るという型で覚えて差し支え無いでしょうか?if文が外側に来ることもあるのでしょうか?
↑
上記の質問を読む限り、フォルダ操作、テキストファイルやWordファイル等のエクセルでは通常開けないファイルの操作についてについて説明差し上げても、受講生さんには、まだ理解して使いこなすことはできないかとも思います。
先に基礎編の演習をやりまくって、成功したり失敗したりといった体験を十分に積まれることをお勧めします。実務でもマクロを書いて、講座内容についてでも、実務上の課題についてでも、またどんどん質問・相談してください。今後ともよろしくお願いいたします。
エラーをすべてなくすまでとても時間がかかっていました。
ところがハナコのステップでやれば、何も問題なく完成できて驚いています。
おだんご部分をまとめて字下げしてからカットコピーなども、先生の説明がいつも一貫しているので覚えやすいです。
この調子で他の構文もマスターしたいです。
gooska
上から書いていったら僕でも書けませんw
私はいままではl関数ネストを使ってマンションリストのような住所の分割や、条件によって表示させる内容を変えたりしていました。
関数を使うより、VBAで記述するメリットはあるのでしょうか?
>関数を使うより、VBAで記述するメリットはあるのでしょうか?
関数を使う場合、VBAを使う場合での受講生さんが考えられる、メリット、デメリットをまずはリストしていただけますか。
それを見ながらいっしょに考えましょう。よろしくお願いいたします (^^
この動画の解説文に、「ハナコのステップ」で作ったIf文を、For Next構文で挟み込んでいます。
このように、プログラムを書くときには、一番内側のものから書いていくのが初心者向けです。
(このステップを完全にマスターすると、外側からでもどこからでも書けるようになります)
とあります。( )内のコメントですが、完全にマスターした人は、マクロを書く基本である小さいものから、大きなものへのステップを外して書くことがある
という意味にもとれますが、どうなのでしょうか。
どう思われますか。
>小川様
>この動画の解説文に、「ハナコのステップ」で作ったIf文を、For Next構文で挟み込んでいます。
>このように、プログラムを書くときには、一番内側のものから書いていくのが初心者向けです。
> (このステップを完全にマスターすると、外側からでもどこからでも書けるようになります)
>とあります。( )内のコメントですが、完全にマスターした人は、マクロを書く基本である小さいものから、大きなものへのステップを外して書くことがある
>という意味にもとれますが、どうなのでしょうか。
基礎フォローアップ第16回で、お団子を作る前に、外側から書いていく動画がありますから、おそらく、基本のステップを外して書くことがあるのだとは思います。
ですが、それが、外側から書くのが論理を組み立てていくのに(初心者にとっても)都合がいい場合だからなのか、それとも、ただ単に、達人レベルはステップを踏まずに書けるだけなのかは区別できません。
>受講生 さん:
>
>どう思われますか。
>
>>小川様
>>この動画の解説文に、「ハナコのステップ」で作ったIf文を、For Next構文で挟み込んでいます。
>>このように、プログラムを書くときには、一番内側のものから書いていくのが初心者向けです。
>> (このステップを完全にマスターすると、外側からでもどこからでも書けるようになります)
>>とあります。( )内のコメントですが、完全にマスターした人は、マクロを書く基本である小さいものから、大きなものへのステップを外して書くことがある
>>という意味にもとれますが、どうなのでしょうか。
>
>ですが、それが、外側から書くのが論理を組み立てていくのに(初心者にとっても)都合がいい場合だからなのか、それとも、ただ単に、達人レベルはステップを踏まずに書けるだけなのかは区別できません。
区別できないようでしたら、とにかく動画でやっているようにマネして書くことをくり返してください。
質問者さんには、その差を区別できるようになるための経験が足りません。経験が足りないから、区別できないのです。
質問者さんのこれまでの質問の傾向からするに、マクロの習得云々以前に、理系科目の学習体験が弱いように見受けられます。
量をこなさないと質的な違いは見分けられるようにはなりません。
そして、この「量」についての話は、「エクセルマクロの」というより以前に、「理系科目全体の」という意味でもあります。
この講座で量をこなすことは、「理系科目全体の」量をこなすことそのものなので、ここで徹底して訓練すれば、マクロ以外のことにも応用の効く考え方や問題解決能力が身につくでしょう。
この講座での学び方については、以下も参考にしてください。
http://www.exvba.com/comment_detail.php?comment_id=5411
>小川慶一 さん:
>
>基礎フォローアップ第16回で、お団子を作る前に、外側から書いていく動画がありますから、おそらく、基本のステップを外して書くことがあるのだとは思います。
>ですが、それが、外側から書くのが論理を組み立てていくのに(初心者にとっても)都合がいい場合だからなのか、それとも、ただ単に、達人レベルはステップを踏まずに書けるだけなのかは区別できません。
>
>>受講生 さん:
>>
>>どう思われますか。
>>
>>>小川様
>>>この動画の解説文に、「ハナコのステップ」で作ったIf文を、For Next構文で挟み込んでいます。
>>>このように、プログラムを書くときには、一番内側のものから書いていくのが初心者向けです。
>>> (このステップを完全にマスターすると、外側からでもどこからでも書けるようになります)
>>>とあります。( )内のコメントですが、完全にマスターした人は、マクロを書く基本である小さいものから、大きなものへのステップを外して書くことがある
>>>という意味にもとれますが、どうなのでしょうか。
>>
>
②また、たくさんあるデータの中から 例えば住所でいうと 渋谷区で小田急線の(2つ以上の条件)の人のデータを横にすべて範囲指定するとかできますか?
お返事遅くなりました。
[1] 発展編1の内容なのでその意味までは今回は書きませんが、以下の書き方です。
11 の代わりに、 Range("A" & Rows.Count).End(xlUp).Row
[2] 基礎編フォローアップ動画をひととおりやってからまたご質問ください。フォローアップの中で、そこに至るまでのヒントは得られるかと。
>①For gyo = 2 To 11 でなく 後ろが「データの入っている最終行まで」としたいときどう書けばいいですか。
>②また、たくさんあるデータの中から 例えば住所でいうと 渋谷区で小田急線の(2つ以上の条件)の人のデータを横にすべて範囲指定するとかできますか?
入力ミスもないし、早いし、素敵です!!
正確さを担保できる方法を採用するのがとても大切です。
>IfとElseの間に、単純に、コピーしていけば良いということは、目からものさしでした!!
>
> 入力ミスもないし、早いし、素敵です!!
慣れてしまえば、簡単ですよ!
すぐに、カッコよくなれます!練習、練習!! o(^_^)o
>カッコイイです~!