> 今回は、とても苦手な応用で・・・今日1日何時間もチャレンジして、
> すっかり煮詰まってしまいました(~_~;)。
> そうなんです。言われたことは出来るんですが応用となるとなかなか
> 頭が回らなくて、中途半端なものになってしまいました。今回は、
> とても苦手な応用で・・・今日1日何時間もチャレンジして・・・
> 言われたことは出来るんですが、応用となると・・・
→ マクロっていうのは会社の誰からもたぶん誰にも言われない
事だと思うので、そこが肝心な肝になる思います。
けど、
それも(応用も)慣れです。練習です。練習あるのみです。
1つに何時間もかけないで、すぐにできるものから
何個も何個も何個も何個も、作る練習をまずしましょう。
たとえば、印刷の
ActiveWindow.SelectedSheets.PrintOut Copies:=1
これを
ActiveWindow.SelectedSheets.PrintOut Copies:=2
に変えてみれば、印刷2枚出てくるー!てな、
超簡単な応用からで、まずは十分なんです。
▼ YouTube再生45万回突破しました!
本日も 三太郎アカデミー のQAから一つ
Q.
呪われています。Visual Basicを開こうとしたら変なものが左上に
出現しました。ファイル、表示、書式等等。。モジュールを開くの
に難儀しましたがこれは何でしょう。
A.
これは、呪いなんかじゃなくてただ単に画面縮小がされただけです
ね。図の赤丸の最大化ボタン押してみて!
▼ YouTube再生45万回突破しました!
本日も 三太郎アカデミー のQAから一つ
Q.(Lesson10)
質問ですが、少し複雑になって来て、どのmoduleに
どのマクロが記入してあるのかはクリックして開かずに,
例えばモジュール名の横に表示するなどできないのでしょうか。
今は紙にメモしています。
A.
その場合にはその下にある「プロパティ」ってところで(図の赤丸の部分で)
好きな名前に付け変えることは可能です。
ですが、まぁこれくらいなら特にそこまでやる必要もない思います
し、moduleのマクロは作った順に入っていますので名前変えて順番
変わってしまう方が返ってわかりずらくなるケースもありますし、
次からはまたModule数少ない回に入っていきますので、ここでは、
試しに変えて見る(いい名前付けようと悩んで時間を掛けないで!)
程度にしておくのがよいかと思います。
▼ YouTube再生45万回突破しました!
本日も 三太郎アカデミー のQAから上達する人のポイントを一つ
Q.(Lesson8)
> 例えば ActiveCell.FormulaR1C1 と記録されているところの変数
> への置換えがよく指示されます。
> このとき、FormulaR1C1 て何だろうと思っちゃうのです。
> 私、VBA本ほとんど見たことないのですが、
> 意味が分かると出来ることが増えるような気がしてしまいます。
A.
それは全く必要ないな。
知る必要はないってメルマガでも今回のテキストでも散々言って
きてるでしょ。うちの講座で出来る上級者は皆それは気にしない
人ばかりです。間違いなく!
Q.(続き)
> 意味が分かると出来ることが増えるような気がしてしまいます。
A.
これがそもそも、VBA本書いてるような素人先生の考えに過ぎない
から・・・。むしろ減る!
余計なことを気にすればするほど、その理解に時間掛かってしまう
のは当然なんだから、それで肝心なことに掛ける時間が減るのは
当たり前。プログラマーは鈍感力も必要なんです。
時間は有限だし、自分が一生の間で知ることは世の中のごくごく
一部でしかなく、私なんか50過ぎても人生知らないことだらけ。。
自分は何でも知ってるだなんてヤツはただの思い上がりに過ぎま
せん!(人生哲学!(笑))まぁ、それパートナーのスマホの中身と
一緒です。「知らぬが仏!」なんで、VBAもそれ一緒ですね。(笑)
▼ YouTube再生45万回突破しました!
三太郎アカデミーのQAから
Q.(Lesson7)
> 私はSheet1で画面をスクロールしたので、課題のマクロより一行
> 多い、ActiveWindow.SmallScroll Down:=9が入っているのですね?
> 上記のマクロは削除してしまった方が、良いのですか?
A.
それは、まったく気にする必要はないですよ!もし邪魔に思うよう
なら消してしまってもいいけど、誤って必要な行も消してしまう
リスクも伴うんで、まぁ、1カ月も経って目が慣れてくれば自然に
目が無視してくれるようにもなるんで、1行~3行程度のものであれ
ば、特にわざわざ消さなくてもいいんじゃないかな。
▼ YouTube再生45万回突破しました!
今回は、前回の初級検定結果の発表に続きまして、今回が初開催となった【中級】試験の結果を発表してみたいと思います。
中級受験者の皆さん、大変お待たせいたしました。
なお、前回に発表した【初級】試験の結果は こちら です。
本日の【中級】試験の結果発表の主な項目です。
・出題の狙いとポイント
・合格率
・不合格者に見られた主な間違い
■出題の狙いとポイント
まず、今回が初となる中級検定の問題では、「抽選マクロを作成する」との課題を出しました。
とにかく、中級はぜひ思考力を試す試験にしたい(マクロができるか否かは言語力ではない!)思ってきましたので、、「抽選マクロ」いいますのは、それの題材には打って付け思います。
で、「抽選マクロ」といいますのは、
応募者の一覧リストの中からユーザー(抽選する人)が指定した人数の当選者を、ランダムに選び出す。というものになるわけですが、
これを、どのようなロジックで解けばよいのか?その思考力が、合否の明暗を分ける試験になります。
ちなみに、ロジックとは解き方(処理の筋道)の意味になりますが、一般的な「抽選システム」のロジックというのは、ランダムな数字(乱数)を全員に対して発生させて、その上からか下からかで順に当選者を決める。といった、至って単純なもの(?!)になっています。
ちょっと難しいのは、VBAでその乱数を発生させる方法(プログラムの書き方)になるかと思いますが、今回それは、問題文の中に下記の様なそのコード例を明記しましたので(それを問う為の試験ではないですから)知らなくても全然問題ない内容になっています。
乱数を発生させるVBAコードの例)
Randomize '←必ず必要!(乱数の初期化)
Range("C" & i).Select '乱数の書き出し位置
ActiveCell.Value = Rnd * 1000 'Rnd 関数&実数表示
あと、今回もう一つのポイントが「入力チェック」です。
今回の課題では、InputBoxを使ってユーザーが任意の当選数を入力指定ができるようする問題としました。
但し、仕様に記載の前提条件があり、その範囲内で過不足なく、的確な入力チェックが行えるか否かを問う問題です。
■合格率
今回が初開催の中級試験では、受験資格を「過去に初級検定で合格経験のある人のみ」と致しましたから、受験者のレベルは皆さんそれなりに基本の出来ている人となりますから、
私の見積もりでは、合格率は概ね3割くらいかな?との狙いと予測をして問題文の作成を致しましたが、それより少々低めの
合格率24%
の結果となりました。
予測より狭き門となった原因は、ちょっと時間が足らなかったかな~というのが印象です。(次回は180分にして、1時間延ばそうか。。。)
■不合格者に見られた主な間違い
まず、多かったのは先ほどのポイントにも挙げました入力チェックの過不足です。前提条件以上の要らんチェックまでしてしまって、制限時間の120分に間に合わなかったとみられる人が多く見られました。
また、チェックが甘くて全員当選になってしまったり、当選者数の指定が一人だとエラーが出てしまったりと、特に他人も使う想定でのマクロを作る場合には、まずはコスト(作成に掛かる時間)と必要性を適正に考えた上での入力のチェックいうのが、大切です。
あと多かったのは、やはりロジック的なものですね。
ワークシートを設けて処理するとか、ワーク用の列に乱数出して並べ替えするとか、色々なロジック的考え方はあるわけですが、とにかく、試験の制限時間が120分と短いですから、合格するにはとにかく効率よく作れる方法を選ぶという必要があるわけです。
この点でも、この中級検定では、「普段から処理のロジックを考える習慣があるか否か」それを判定できる為のものになっています。
プログラミングで肝心なのは、VBA言語の翻訳力ではないんです。ロジックです。処理の流れを考える力とその練習なのです。それ、絶対に間違ったらいけませんよ!
今回採点していて、目立った間違い点はそんな所です。
で、今回合格率こそ予想を下回って(ちょっと120分以内での完成は難しかったのか?!)残念な結果だったでしたが、中級受験者の皆さんからその後頂いてるご感想では、
「時間内に完成はできなかったけど、これは本当、これの処理を考えるのが楽しかったです!」
との声が非常に多かったですので、この様な問題を出した私としても、大変に満足です!
本日の検定(中級)の結果報告は、以上です。
それで、これに気を良くして次回の中級試験では、今回の「抽選マクロ」に続いて
「AIマクロ」とか、
「RPAマクロ」とか、
「ネット情報の収集系」とか、
「株FXの投資系」とか、
etc
思考を凝らして、色々楽しいマクロの問題を考えてみたいと思っていますので、
次回もお楽しみに!