- もくじ -
■はじめに
■合格率
■特別賞(ベストアンサー賞、トップ賞、アイデア賞)
■不合格理由で見られた間違いと注意点
■ブランク空いてしまってる人は・・・
■はじめに
先月末に実施しました「マクロ検定」の試験ですが、
受験くださった皆さま
ご参加、誠にありがとうございました!
大変お疲れさまでした。
今回の出題内容は初級レベルということで、
・ループが回せて、
・分岐処理ができて、かつ
・データ数の可変に対応したマクロが組めること、
マクロ作りで、最も重要なこの基本的な3点を問うという検定内容でありました。
それに加えて、今回の検定では、
「カンニング自由」
「制限時間60分」
という条件を設けまして、
・実際の仕事で(実務で)マクロを作る時と同じ環境下で、かつ、
・限られた制限時間内に素早く完成させる、
より現実的な技能(実務能力)を問うということを目的として実施したものです。
そもそも、実務にカンニングなんてものは存在しないわけですし、また、作業を効率化するためのマクロを、非効率な方法で長々と時間を掛けて作っていたのでは本末転倒、元も子もないわけです。
正しく動作するマクロを組めるか否か、それに加えて、素早くマクロが組める方法が身に付いているか否か、それがとても重要であるわけです。
素早く組める自信があるかどうかで、何か面倒で時間の掛かるExcel作業が発生した場合に、せっかく覚えたマクロのスキルであっても、それ使わずに原始的に手作業でやるという事が多くなってしまうと思うからです。
■合格率
それで、肝心な検定結果なんですが、
今回は、まるっきり一切の手加減なしで厳しく、厳密に合否判定をさせてもらいました。
当初、想定していたのは合格者半分程度(合格率50%)の難易度ということで問題作りをしましたが、それよりやや高めの合格率6割強という結果となりました。
合格した皆さん、おめでとうございます!
合格者の皆さんには、本日中に「合格証書」をお送りする予定です。
■特別賞(ベストアンサー賞、トップ賞、アイデア賞)
それと、今回は合格者の皆さんの中から、
★ベストアンサー賞
★トップ賞
★アイデア賞
この特別賞3名を選出することにしました。
特に賞品というのはありませんので気持ちだけですが、(笑)
該当者の方は、お送りした合格証書にこの記載がありますのでご確認ください。
なお、上記各賞の意味する所と、選考の理由は以下です。
★ベストアンサー賞
初心者でも素早く確実なやり方(当講座の教え)というのがちゃんと身に付いているという点で、下記理由により実にベストな解答をいただけた方に、この賞をおくりました。
・マクロの記録をベースにちょこっと修正するだけで素早く(何もわざわざ調べる必要もなく)作れる。
・Excelの操作と構文の1行1行が1対1の関係に対応していて、より分かり易い書き方になっている。(=デバッグも素早くやり易い。)
・思考を中断させない変数名の使い方と、時間の無駄なだけの余計なDimDimもやってない。
★トップ賞
合格者の中で、今回の3日間を通じて一番早く解答を提出し、検定開始(問題の公開時刻)から解答メールが届くまでが、わずか18分の最速の方にこの賞をおくりました。速い!
あのような長文問題文(マクロの仕様書)を読んで、この仕様を理解して、マクロ作って、確認の実行して、更に、解答のメールを送る、そこまで全部をやって、わずか18分間ですから、マクロ作成に正味掛かった時間というのは、たぶん10分以内だった事でしょう。
これだけスピーディーに組めれば、マクロ作りが全く苦にならないレベルなわけですから、身の回りのExcelデータの整理等は本当、「何でもかんでも全部マクロでやる派!」の域に達してることでしょうね。
★アイデア賞
問題文(仕様書)をそのままプログラムの下方へコピッペして貼り付けている、というアイデアが素晴らしかった方にアイデア賞をおくりました。
・問題文全部コピッペ&コメントブロック化するだけで一瞬で詳しい説明文代わりに使える。
・後々でも何やってるマクロなのか?これ何故作ったのか?等、これなら一目瞭然である。
時間が経てば自分で作ったプログラムであってもすっかり忘れるいうのが人間ですから、何年か後にこのプログラムを見た時に、これならすぐにこれ作った目的も内容も思い出せて、大変便利なやり方ですね。
(仕様は空きシートに貼り付けて置くというのでもよいのですが、データシートが沢山ある場合だと未来の自分がそれ残してあること自体に気付かないという事もよくある事ですから、将来、プログラム修正する場合にプログラマーなら必ず目にするという場所に貼り付けておくのがよいわけです。)
ちなみに、このようにプログラム中に文章等コピッペする際は、ここに書いてある「コメントブロック」というのを使うと便利です。参考HP→ コメントアウトの仕方と考え方
■不合格理由で多く見られた間違い点
惜しくも不合格となった皆さんは誠に残念でありましたが、(大変惜しいなぁ~思える人が多く居られました。)
不合格理由で間違い多く見られた主な点は、以下です。
・並べ替え順が昇順になっている。(正しくは降順(背の高い順)です。)
・データ数が固定になっている。(データ数増やすと正しく処理されない。)
・コンパイルエラーが出る。(プログラムが未完成の状態で実行できない。)
あと、一番注意しなければいけない思ったのが、問題文の中に、
2. また、上記の名(B列)欄には空欄(欠損データ)がありうるものとし・・・
との記載がありますので、たとえば、
n = Cells(Rows.Count, "B").End(xlUp).Row
このように書いてしまうと、名(B列)欄の最後がもし空欄だった場合には、正しく最後の行まで処理されないという事になりますから、ここは注意が必要です。
この仕様の問題文の中には、
姓の欄(A列)には欠損箇所はないものとする。
とありますから、ここは"B"でなくて"A"とすべきなので、正しくは、
n = Cells(Rows.Count, "A").End(xlUp).Row
ですね。どこの列で数かぞえるべきか?は、この観点で注意してください。
■ブランク空いてしまってる人は・・・
また、不合格とは言わないまでも、昔はもっと出来てた人なのにすっかりマクロご無沙汰で忘れてしまったのだろうなぁ~(!?)思える人がちらほらと居らっしゃるようでした。
そんな、「マクロご無沙汰!」となってしまってる人は、以前メルマガでもお話しましたこちらの方法いうのがかなり役立ちますから、心当たりのある方は是非これ一読してください。参考HP→ 何年ブランク空いて忘れても大丈夫な方法
これで、簡単に「昔の勘」はすぐに取り戻せますよ。
■検定受けた感想受付中!
おかげさまで、久しぶりのプログラムレビューで皆さんが作ったプログラムを沢山見させていただきまして、私自身も大変楽いマクロ検定(読者1万人達成記念の目前イベント!?)となりました。
受験くださった皆さま、本当にありがとうございました。
なお、今回の検定を受けたご感想(難しかった、やさし過ぎる、時間足りない、等々)何かもしありましたら、このブログの下記のコメント欄に自由に書き込みしてください。(もちろん、いつものようにメール返信でも受付けてます!)
では、ご参加誠にありがとうございました。