1
/
5

【資格取得】インタビュー Vol.17|「勉強の質を高めるために、アウトプットに注力します」好奇心を原動力へ、思いついたらすぐ実行!

みなさん、こんにちは。
ヴェシカの飼谷です。

今回のインタビューに協力いただいたMさんには、たくさんのコメントをいただきました!
学習過程でどんなことがあったのか。どんな勉強方法を試してきたのか。
きっと参考になる部分も多いかと思います。

Mさんのインタビューをぜひご覧ください。

◎資格取得者
名 前:Mさん(男性)
前 職:家電製品サポートのコールセンター業務

◎合格資格
Excel VBA ベーシック

目標の立て方

取りたい資格を決めた理由を聞かせてください。

入場する現場でExcelを使う予定でしたので、Excelも視野に入れようかと思っていましたが、すでにMOSエキスパートレベルには扱えているなと感じていました。

その時には、開発に携わってみたいとぼんやり考えていたので、実際にコードを書いて動かすものを会社の推奨資格から選びたいなと思い、VBAベーシックを取得することに決めました。


実際に資格を取得して、なにかに役立てられそうですか?

すぐに次の現場で使うことはないかなと考えています。
ただ「Excelはこうする事で自動化や効率化できるんだ!」という事を学べたので、現場入場後に「この入出力作業は自動化できるんじゃないか」「この作業はここをこうすれば効率化できるんじゃないか」というような視点を持つことが出来ると思います。

そのうえで、自宅で勉強の傍ら考えたことを試すのは面白そうだし、スキルを身につけることにも繋がるのかなと思います。


学習についての質問

総学習時間はどのくらいかかりました?

20時間くらいです。


学習はいつ、どのように取り組みましたか?

社内研修の項目をすべて終えた後、担当営業と相談し始めました。
勤務時間内のみの学習です。並行して別の学習もしていたので時間にすると大体1日4時間くらいかなと思います。

学習の取り組み方は大きく3つ。

1つ目は参考書からのインプットです。
『VBAエキスパート公式テキスト ExcelVBAベーシック』、『すらすら読めるExcelVBAふりがなプログラミング』の参考書2点を使用し、用語やコードなどを覚えました。参考書の内容はノートに書き写していました。自分なりの用語集を作るイメージで箇条書きでノートを作っていました。加えて、ノートに書くときは心の中で声に出して書いてました。心の中でも声に出した方が、覚える感覚がある気がしています。

2つ目は、コードを書くことです。
まずは参考書にあるコードを実際にVBEに記述して実行していました。
記述することで、コードの読み方が自然とわかるようになります。VBAの試験ではコードを読む問題が複数出ます。一見複雑に見えますが、コードを読むことに慣れていれば問題ないレベルです。加えて、参考書のコードを応用して、コードを記述もしていました。後述するタイマーもそうですが、ほかにも遊びながら学習していました。文字を読み書きするだけではなく、実際にコードを書いて知識をアウトプットした方が、覚えやすいし学習も苦にならないと思います。

3つ目は、演習問題です。
ネットで調べてみると無料で解ける問題が非常に少ないです。
私は『VBAエキスパート公式テキスト ExcelVBAベーシック』の著者が公開している模擬問題1つと、かろうじて見つけた無料の問題集2つを実施しました。

私にとっては、どの演習問題も1回で合格ラインを上回っていたので、問題集の少なさに不満はありませんでしたが、もしもっと問題を解きたいとなった場合、有料の問題サイトや問題集の購入を検討する必要があると思います。


チャレンジした結果、"何が"大切で、どこを改善したいなどはありましたか?

自分はExcelがMOSレベルにはでき、社内の研修などでほかのプログラミング言語を触っていたので、学習を始める前にどれくらい解けるのかを、試しに公式サイトのサンプル問題を10問解きました。どんな問題が出るのかチェックする意味合いもありました。

半分は解けていたと記憶しています。ただコードを読む問題に時間が掛かったり、間違いも多くありました。その結果から、ある程度できるんだなと感じたので、平均学習時間より短いスパンで学習を終わらせ、かつコードをすらすら読めるようにすることを目標にしました。学習方法は前述のとおりです。

結果、平均学習時間25~35時間よりも短い時間で試験に合格。
20分弱で解き終わり、コードを読む問題は完答でした。

合格したので申し分ないのですが、欲を言えば満点が欲しかったです。
2問落としてしまいました。どこが間違っていたのかの詳細を確認することはできませんが、解いている時にここは恐らく間違えているだろうというところが2箇所あったので、不幸にもそこの選択肢を両方とも外してしまったのだと思います。

そして2箇所のうち1つは、自身でコードを書くときにあまり使わなかったものでした。
アウトプットに偏りがあったためのミスだととらえます。なので、改善点は、今後アウトプットの際に偏りがないよう万遍なくアウトプットした方が良いのかなと考えています。


VBAの成果物

どんなものを作ったのか見せてもらえますか?

タスクごとに作業時間を記録できるタイマーを作成しました。

自社研修でアルゴロジックというWebサービスを使用しました。
アルゴリズムの問題を解くというもので、各問題ごとにその解答時間を記録する必要がありました。
スマホなどで計って、Excelに手打ちしてもよかったのですが、せっかくなのでExcel上で計れるようにしてみました。

①全体図


②開始と停止とリセット

これがタイマーという機能です。
開始/停止のボタンを押すことで、アクティブセルにて時間の計測が始まります。
再度押すと計測が止まります。リセットを押すとアクティブセル内の値が消えます。

TIMER関数でボタンを押したときの時間を取得し、TIMER関数で再度現在時刻を取得し、その2つの差を求めることで時間を計測します。式にするなら「計測時間=ボタンを押したときの時刻-現在の時刻」です。


③継続して計る

作業を一度中断したとき、再度継続して計りなおすこともできます。
既に値があるセルを選択して、開始/停止のボタンを押すと途中から時間の計測が始まります。この機能が意外と曲者でした。

インターネットで参考にしたコードでは、一度停止した時の時間を記録しておくセルが別に必要でした。それだと見栄えが悪いなと思ったので、どうにか同じセルでできないかと試行錯誤しました。

コードは以下の通りです。

継続して時間を計るには、先ほどの式に「セルに書かれている時刻」を足します。
「経過時間=ボタンを押したときの時刻-現在の時刻+セルに書かれている時刻」ですね。

ただ、この「このセルに書かれている時刻」の値をそのまま式に入れてしまうと、とてつもなく小さい小数となります。なぜなら、セル内の値は書式が「hh:mm:ss」で表される数値だからです。
なので、これをTIMER関数が返す値と同様の秒数に直す必要があります。それが上図のコードです。
これに気付くのに2時間も掛かりました笑。

真偽値で値の内容を判別したり、デバッグモードで値の変化を見てみたりしました。
実務のテストは、こういう感じなのかなぁ。などと想像しながらやってました。これまでExcelを使う時に、セル内の値を正確に考えることはほとんどなかったので、タメになりました。


④途中で別のセル

次に計測中にほかのセルに文字を入力したくなることもあると思います。
下図の真ん中より下あたりのコードを見るように、アクティブセルに計測時間を出力するという設計なので、計測中にアクティブセルを変更してしまうと、新しいアクティブセルに計測時間が移ってしまいそうです。ですが、このシートでは下図のようにすることで、解決しました。

まずアクティブセルの情報を記録します。
そして、計測中にアクティブセルが移動したときに、時間を計測するループ処理①内で別のループ処理②が発生するようにします。

そうすると、②のループを抜け出すまで、①のループでは次の処理に移らないため、計測の処理が行われず、実質一時停止します。

そのため、移動したアクティブセルでは計測がされず、文字を入力などできます。またアクティブセルを元の位置に戻せば計測再開されます。TIMER関数が現在時刻を返すため、アクティブセルを移動していた間の時間も加算されます。


⑤特定のセル以外

また、計測時間を記録する箇所以外での計測をできないようにしています。
もしアクティブセルが指定の列以外の場所にあればエラーが出ます。誤って計測によりセルの上書きを防ぐ為です。

上図のコードの通り、変数titleに任意の列名を代入することで、任意の列でのみ計測できます。


⑥特定のセル以外をリセット

最後に、リセットボタンでは、計測時間以外のセルの値を消せないようにしています。
間違って文字列を入力しているセルをアクティブセルにした状態で、リセットしてしまったら大変ですからね。マクロで実行した結果は元に戻せないというのは資格試験に出るので要チェックです。

次の成果に向けて

次はどのような成果をあげたいと考えていますか?

現在はlpicの学習をしています。将来開発に携わってみたい気持ちがあるので、プログラミング言語も必要ですが、コマンドラインもまず知識として入れておきたいと考えています。

社員への応援メッセージ

これから同じ資格を取得しようとしてる方に、ポイントやアドバイスをお願いします!

手を動かすことが大事かなと思います。
コードを読むだけと、コードを書いてみるのでは、理解に大きく差があると思います。よく英語の学習では、リスニングを伸ばしたいならスピーキングをするのが良いといわれます。これの大きな理由は、自分が話せないスピードの話を聞き取れないからだそうです。

ただ私は、もう1つ別な理由もあるのではないかと思います。それはインプットの理解を深めるために、アウトプットに注力することが重要ということです。

プログラミングの学習では、インプットがコードを読むこと、アウトプットがコードを書くことになると思います。実際に私は、何がどう動くのかわからないコードでも、自身で書き写していくうちに「この文字はこうで、この行はこうで」とわかるようになりました。

加えて、書き写したものを「ではこの部分をこう書き換えてみたらどうなる?」と実際に書き換えてみることで、プログラムの構造がより明確にわかりました。その結果、試験にでてくる問題、コードを読んでどのような動きになるのかという問いに完答できました。コードを書くことで、コードを読む力が育ったといえると思います。

おそらく、未経験の方はこの資格を取ってみる場合が多いと思います。特に全くコードなんて読めないよという方、読めなくてもいいのでまずは書き写すということを実践するとよいと思います!


筆者のコメント

今回Mさんにはたくさん語っていただけたので、インタビューを行った私としても非常に嬉しく思います。
おかげさまで皆さんにたくさんの内容とコメントを、お届けする事ができました。

Mさんは、IT業界やエンジニアの学習などを入社前から特にしていなかったとの事ですが、入社後の学習スピードが非常に速く、どんどん吸収していくので正直かなり驚いちゃいました!

あまりにも順調に学習していくので
「資格学習とツール開発に加えて追加の課題も用意し、同時に3つの学習を進めてください」
とお願いして取り組んでもらった結果。

それらの課題も、割と難なくこなして行くので、気付けばMさんの成長を楽しみにしている自分がいました。成長速度には個人差がありますが、もしかするとMさんは随分と速いステップアップを踏んでいくのかもしれませんね!

Mさん、次の目標である「Lpic」の資格学習もファイトです!
心から応援しています!

今回Mさんにはインタビュー撮影にもご協力いただきました。
"Instagram"にてご紹介しておりますので、こちらもぜひご覧ください。



株式会社ヴェシカでは一緒に働く仲間を募集しています
1 いいね!
1 いいね!

同じタグの記事

今週のランキング