第3回目です。(皆さんの進捗状況&Q&Aの共有など)
こんにちは、三太郎です。
『三太郎のアカデミー通信』第3号です!
開始から2週間が経過しました。
さて、本日のメニューです。
--今回の目次-----------
1.【皆さんの進捗状況について】
2.【ルールの明確化について(その2)】
3.【今週の”名言大賞”】
4.【主なご質問と回答を共有します】
------------------
1.【皆さんの進捗状況について】
皆さんの今現在の(昨夜時点までの)課題終了の状況は以下と
なっています。
第2週目の終了者 ← 13名(追加演習中の人)
L8までの終了者 ← 3名
L7までの終了者 ← 2名
L6までの終了者 ← 4名
第1週目の終了者 ← 3名(第2週目に入った人)
L2までの終了者 ← 1名
なお、これまでと今後の大まかなスケジュールは、
第1週目 ← 「マクロの記録」に慣れ親しむ
第2週目 ← 「変数の使い方」に慣れ親しむ
第3週目 ← 「ループと分岐」に慣れ親しむ
です。
その辺の基礎勉強を最初の3週間でみっちりやって、あとは
(第4週目からは)ひたすら応用あるのみ!です。
これを個人個人のレベルに合わせて個別指導でやっていく
というのが今のところの計画になっています。(我ながら、
これは予定通りの完璧なカリキュラムです!笑)
ひとつお便りが、
> 遅くなってすみません!
> 私がビリですよね…。 ←その通りです!笑(by 三太郎)
> 10分位と説明にあったのに、
> 『私の場合、もっとかかるかも』と妄想し、←妄想です!(同)
> 目先のことが気になり先延ばしにしてしまいました。
> 実際、10分程度でした( ;∀;)
> 心を入れ替えて、挽回します!!
とのことで、心配していたあの人もようやくと動き出しましてー
これで全員揃ってのスタートが切れました。(喜!)
2.【ルールの明確化について(その2)】
たとえばです、
火曜日の朝9時にL5とL6の2本、その返事を待たずに
水曜日の朝9時にもう1本、
木曜日の朝9時にもう1本、
計4本の回答メールを送ってきた人の場合ですと、
これは前回に明確化した23時間ルールに基づいた場合、
この人に私からの返信メールが届くのは、4×23h=92h
しかも、私のアドバイスを聞いてくれない(聞きたくない?)
独学派の人には、これ全部まとめて(なるべく手間なくー)
一度にまとめて返すことになるわけですから、
よってこの場合、最後に出した木曜日の朝9時から92時間後、
すなわち、翌週の火曜日の返信ということになります!
これは私も非常に返信もし辛くなるばかりか、明らかに
自分自身も不利になるかと思いますから、知った上でそれ
やってくる方はそれでも構わないわけではあるんですが、、
とにかく、前々から言ってますように、マンツーマン指導
いいますのは信頼関係が何より大切です。それによって
伸びる人も居れば伸びなやむ人も居る思います。あの、
テニスの大坂さんも、コーチ替えてからめっきり勝てなく
なった気がしますから、何事にも師弟関係が大事ですね。
この際ですからはっきり言いますけど、いくら私の方から
信頼関係築こう思ってやっていましても、皆さんの方で
その意識のない人とは、一方的には信頼関係築きようが
ないわけですから、その辺も少々意識した上でメール
やり取りのキャッチボールを私と意識してしていただけま
すと、幸いです。(その効果は絶大ですよ!)
3.【今週の”名言大賞”】
今週の名言大賞は・・・
「マクロの良い所=文句言わずに働くこと」(by ちゃぺさん)
「12時の鐘が鳴り終わる前に。。今夜もセーフ!」(同)
またしてものちゃぺさん、見事な連覇です!圧倒的なボキャ力
です。
さて、次週こそは彼女を打ち負かすだけの名言者が現れますか
どうかー、期待してます!
4.【主なご質問と回答を共有します】
これ選ぶのが本当大変なので、余り考えずにどんどんQ&A情報
は今後出していくことにしようかと思ってますが、とりあえず
今回は、以下共有します。(A.部分は三太郎からの回答です。)
Q.(Lesson7)
> 私はSheet1で画面をスクロールしたので、課題のマクロより一行
> 多い、ActiveWindow.SmallScroll Down:=9が入っているのですね?
> 上記のマクロは削除してしまった方が、良いのですか?
A.
それは、まったく気にする必要はないですよ!もし邪魔に思うよう
なら消してしまってもいいけど、誤って必要な行も消してしまう
リスクも伴うんで、まぁ、1カ月も経って目が慣れてくれば自然に
目が無視してくれるようにもなるんで、1行~3行程度のものであれ
ば、特にわざわざ消さなくてもいいんじゃないかな。
Q.(Lesson7)
> 111と222を入力したあと、Enterを押さずに次のシートに移って
> よかったのですね。私のマクロの記録には、Enterをそれぞれに
> 押したので、それも記録されていました。無くてもよいなら・・・
> と、記録したあと2行消しました。指示を正確に読むと、Enter
> を押すとは書いてありませんでしたから、Enterを押さず次の
> シートに移ればよかったのでしょうか?
A.
これは、前週Lessonの同じシート上での場合はダメな(次の操作に
はいけない)わけでしたが、Excelの仕様上、シート移動時に入力
モードは解除になりますから、シート移動のある今回のLesson内容
の場合ではEnter押す必要性は特にないわけです。
Q.(Lesson8)
> 例えば ActiveCell.FormulaR1C1 と記録されているところの変数
> への置換えがよく指示されます。
> このとき、FormulaR1C1 て何だろうと思っちゃうのです。
> 私、VBA本ほとんど見たことないのですが、
> 意味が分かると出来ることが増えるような気がしてしまいます。
A.
それは全く必要ないな。
知る必要はないってメルマガでも今回のテキストでも散々言って
きてるでしょ。うちの講座で出来る上級者は皆それは気にしない
人ばかりです。間違いなく!
Q.(同、続き)
> 意味が分かると出来ることが増えるような気がしてしまいます。
A.
これがそもそも、VBA本書いてるような素人先生の考えに過ぎない
から・・・。むしろ減る!
余計なことを気にすればするほど、その理解に時間掛かってしまう
のは当然なんだから、それで肝心なことに掛ける時間が減るのは
当たり前。プログラマーは鈍感力も必要なんです。
時間は有限だし、自分が一生の間で知ることは世の中のごくごく
一部でしかなく、私なんか50過ぎても人生知らないことだらけ。。
自分は何でも知ってるだなんてヤツはただの思い上がりに過ぎま
せん!(人生哲学!(笑))まぁ、それパートナーのスマホの中身と
一緒です。知らぬが仏!(笑)なんで、VBAも一緒ですね。
Q.(Lesson9)
> 今回のLessonで、シート2020を作った時に、シートの並びが
> 2018、2019、2020の昇順でないといけないのかな?と思って
> マクロを実行する前に、シートの並び替えをしました。
> 試しにシートの並び替えをせずに実行しても同じ結果になり
> ました!シートの名前の数字で認識するので、シートの並び
> は関係ないんですね!シートの名前もマクロに適した名前で
> 作ると良いんだ!とちょっと賢くなったような気分になりま
> した。マクロの勉強が益々楽しくなりました。
A.
自分で気付いて賢くなっていく・・・それが理想的な姿ですね。
(他人に教わった事はどうせすぐに忘れちゃいますからね。笑)
Q.(Lesson9)
> テキスト通りプログラムを変更したのですが、
> 実行時エラー'9':インデックスが有効範囲にありません。
> と表示。デバッグを押下したら黄色で表示されました。
> リセットしたらうまくいきましたが、何故うまくいったのか
> わかりませんでした。(←2:05メール着)
A.
それはですねー、真夜中の頭働かない時間にマクロの勉強やる
なんて、そんな無茶をしたからだけだと思いますよ。(笑)
「プログラミングとは、考える作業です。」
そんな脳みそ絶えた夜中の2時いう時間帯に出来るほど甘いもの
ではないのです(笑)。なるべく脳みそが万全な時間帯を選んで
マクロには臨んでくださいね。
PS.
なお、メルマガでは何度も書いていますがこの辺のデバッグの
やり方を知りたい場合は、下記私が解説するYoutube動画が
便利です。
■マクロのデバッグの仕方を5分で理解する
→ https://www.youtube.com/watch?v=_nuLr2xT_Sw&t=29s
■エラー対処の基本(その1、その2、その3)
→ https://www.youtube.com/watch?v=s-mOBxgLObM&list=PLx_SaKxp03vCSyge0_mATsk4tn7CpunEh
本日は、以上です。
わたし、長年ここでマクロを教えてきていつも思うのが、
VBAを勉強してる人の(教える側の人も)、その多くの
人達が陥ってしまう間違いの大基が、これにあるのだと
考えています。
すなわち、それこそが
「マクロ上級者」「VBA上級者」その根本的な違い、
それが分かっていない点にあるということです。
要するに、
「マクロがバンバン作れる人」と、
「VBAの言語にただ詳しい人」と、
この両者は、根本的に違う人であるわけです。
これ、サッカー選手で例えると、
「メッシやロナウド」と
「リフティングの世界チャンピオン」
その違いみたいなものですね!
(ちょっと、例え方が難しかった(!?)ですかね。笑)
で、この読者の皆さんの中にも、
既に受験したことのある方や、いづれは受験してみようと
思ってる人もあるかとは思いますが、
それは、オデッセイコミュニケーションズ社という所で
やっている、あの「VBAエキスパート試験」というものに、
如実に表れてると思います。
当講座で実施する「マクロ検定」は、明らかに前者の
「マクロがバンバン作れる人」(サッカー選手で言えば
バンバン点の取れるメッシやロナウド)を目指してやって
いるわけですが、
その「VBAエキスパート試験」の場合には、後者の
「VBAの言語にただ詳しい人」(サッカー選手で言えば、
リフティングはうまいけど試合では活躍出来ない人。)
を目指してやっている。(と思われます。)
だからよく、せっかく就活などで一生懸命に
「VBAエキスパート試験」の勉強をして合格したとしても、
自分の履歴書にそれは書けない(もし書いてしまったら
入社後に大変な事になると自分自身わかっている・・・。)
世間でよくそう言われているのは、その為ですね。
一方、当講座の「マクロ検定」の場合は、実際にマクロが
作れる人でないと、決して合格は出来ない出題内容と
採点方法とになっています。
両方受験した経験のある人であれば、この違いは如実に
ご理解いただけているかと思いますが、それはそもそも
両者の目指すところがまったく、違うわけです。
ちょっと話は変わりますが、
先日、信州で知り合った元市役所職員だった人と
ちょっと話をしていまして、私が名刺を差し出すと
「実は、私もマクロは組めます。」
「けど、私なんか幼稚なVBAしか書けませんよ。」
と、その人は私にそう言ったんです。
その人のマクロは、「幼稚なVBA?」です。(笑)
けれど、
その人が現役の市役所職員だった頃に色々作ったという
数々のマクロは、今でも近隣のいくつかの市町村役場内
で、大変重宝されて使われているそうです。
その「幼稚なVBA?」しか書けないと言う元市役所職員
の人は、明らかに「マクロの上級者」ではありませんか?
読者の皆さん、どう思います?
役場というのは、同じ名称の部署なら大体どこでも同じ
ような仕事をしてる(!?)思いますから、その人の作った
マクロは自分の働く職場だけでなく、近隣の市町村の
知り合いにも配って回ったんだそうです。
で、それらは大変喜ばれて自分が退職した今でも重宝
されてあちこちの役場で使われているとの話です。
「幼稚なVBA?」しか書けない(高度なVBAの書き方を
知らない)その人は、けっして「VBAの上級者」ではない
とは思いますが、
じゃあ、それはマクロの「初級者」なのでしょうか?
いいえ、その人は明らかに「マクロの上級者」である
と、私は思います。
その人が作るマクロは、「幼稚なVBA?」で書かれた
「高度なマクロ」なのです。
自分も含めて、人々に役立つ便利なマクロがどんどん
「幼稚なVBA?」で作れる人、それこそが本来の意味
での「マクロの上級者」であるに他ならない思います。
高度な(難しい書き方をした)VBAが「高度なマクロ」
なのでは、決してないわけです。
違いますか?
それで、私が15年間ここでマクロを教えて来て知り
合った「マクロの上級者」の人達いいますのはほぼ
その殆どが同様に、
「幼稚なVBAで高度なマクロを作れる人」
言い替えれば、
「幼稚なVBAであるが為に、便利なマクロ
が量産できる人」
であるわけです。
以前にも書きましたが、人間ちょっと慣れてくると
どうしても見栄を張ってかっこよく高度で難しい
VBAのコードを書こうと背伸びをします。幼稚な
コードを書くのは恥ずかしい思ってしまうわけです。
一方、そのような見栄を張らないタイプの人は、
VBAの勉強に極力時間を使わないで幼稚なコードを
書いてマクロ作りの出来る人です。
一たび、そのような高度なVBAにこだわってしまうと、
どうしても本質ではない枝葉にばかり捕らわれて、
それに多大な勉強時間を使ってしまい、肝心なマクロ
を作るという為の勉強に、時間を使えなくなって
しまうというわけです。
高度なVBAの書き方をマスターしようとすれば、それ
相当な勉強と時間を要するわけですが、そんな見栄を
張らずに幼稚なVBAで書く人いうのは、それに時間を
浪費せず、マクロの処理を考えることに多くの時間を
使っている人であるわけです。
見た目は幼稚なVBAコードでも、ガンガンそれで
マクロが作れて実務に便利なものがつぎつぎと
組めてしまういうのが、真の「マクロの上級者」であり、
それに高度なVBAは全く必要ないわけです。
「幼稚なVBAでしか書けないマクロの上級者」と、
「幼稚なマクロしか作れないVBAの上級者」と、
あなたなら、このどちらを目指したいですか?
私が15年間教えて来た結論から言うと、
この両者は決定的に時間の使い方が違うわけです。
時間の使い方、それに尽きる思います。
見栄を張って高度なVBAをマスターしようと、その
枝葉に捕らわれてしまった人は、多大な時間をそれ
に奪われますので、けっして「マクロの上級者」
には到達できない!言いますのが、長年の私の経験
からの確かな結論になっています。
見え張る人は、時間の使いどころが悪いのです。
必要以上のVBA勉強は、ただの「時間喰い虫」にしか
なりません!
日々仕事で忙しく、勉強する時間の限られるビジネス
マンにとって「時間喰い虫」の存在いうのは、ほんと
致命的ですからね。
それは、何も上級者に限らず、初心者でも中級者も
まったく同じです。時間の使いどころが重要である
点は、何の勉強をするのでも一緒ですね。
以上、「マクロの上級者」と「VBAの上級者」
その決定的な違いはお解りいただけましたでしょうか?