今回は、前回の初級検定結果の発表に続きまして、今回が初開催となった【中級】試験の結果を発表してみたいと思います。
中級受験者の皆さん、大変お待たせいたしました。
なお、前回に発表した【初級】試験の結果は こちら です。
本日の【中級】試験の結果発表の主な項目です。
・出題の狙いとポイント
・合格率
・不合格者に見られた主な間違い
■出題の狙いとポイント
まず、今回が初となる中級検定の問題では、「抽選マクロを作成する」との課題を出しました。
とにかく、中級はぜひ思考力を試す試験にしたい(マクロができるか否かは言語力ではない!)思ってきましたので、、「抽選マクロ」いいますのは、それの題材には打って付け思います。
で、「抽選マクロ」といいますのは、
応募者の一覧リストの中からユーザー(抽選する人)が指定した人数の当選者を、ランダムに選び出す。というものになるわけですが、
これを、どのようなロジックで解けばよいのか?その思考力が、合否の明暗を分ける試験になります。
ちなみに、ロジックとは解き方(処理の筋道)の意味になりますが、一般的な「抽選システム」のロジックというのは、ランダムな数字(乱数)を全員に対して発生させて、その上からか下からかで順に当選者を決める。といった、至って単純なもの(?!)になっています。
ちょっと難しいのは、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
思考を凝らして、色々楽しいマクロの問題を考えてみたいと思っていますので、
次回もお楽しみに!