こんにちは、しーらです。最近、出来がいいと褒められるからか施設の学習担当から比較的難解な課題を出されています。IT関係の人なら特別難しくはないはずですが、個人的には結構大変でした(笑)
前提として私が現在勉強していること
現在、私はデータベースの取り扱いをできるようになるため、取っ掛かりとなるExcelの勉強をしています。なぜExcelかというと
-
汎用性が高くどこの企業でも使用しているツール(データベースとは関係なく)
-
VBAによる自動化は仕事やプライベートでも応用が利く
-
VBAはプログラミング未経験にとっては学習しやすい入門となるから
といった利点があるからです。IT関係のサラリーマンなら当たり前のスキルでしょうが、今まで体力仕事だったので自分は浅い部分しか知らなかったのです……。なお、現在ではITパスポート、VBAエキスパート試験のベーシック資格を取得した程度のスキルを身に着けることができました。気になる方は該当記事をご覧ください。
今回出された課題について
課題に関しては非常にシンプルな物でした。
-
1つのセルに指定された数分の関数を使って問題なく処理を行えるようにする(3種類、5種類、7種類、10種類)
これだけ聞くとそんなに難しそうな課題ではなさそうに思えます。実際、3種類については学習担当との面談中に思いついていました。ですが、5種類以降から、その厄介な面が表れてくるのです。
課題の何が厄介だったのか
-
全体を通して違和感のない処理を考えるのが大変
-
ネストさせる関数の順番が間違っているとエラーになるが、複雑になってくるとエラーの原因が数式バーからでは読み取りづらい
-
()などの記号漏れが把握しにくい(エラーは表示してくれる)
といった感じで、全体的に複雑なネストの作成には向いていないんですね。3種類くらいならまだ気づきやすいですが、7種類ともなると2行にかけて数式が表示されるため、非常に可読性が低いです。
実際に作成した例です。やっている処理は「東海地方の受講時間を合計し、それ以外の講座の平均時間より受講時間が長かった場合、東海地方で一番長い受講時間の地域を参照し、読み仮名を表示する」です。簡単な処理なのに、労力のかかりすぎです。VBAが積極的に取り入れられるのも納得です。
解決の糸口はテキストエディタの活用
さて、実際どうやってこの問題に向き合ったかというと「サクラエディタ」の活用です。テキストエディタというテキスト入力に特化したツールの1種で、使用されている現場の方も多いそうです。詳しい使い方は省きますが、少なくとも活用できるようになるとかなりストレスが減ります。まだまだ使いこなせていませんが、便利な機能が豊富でこれからの相棒となってくれそうです。
まとめ:無理して関数を使いまくるよりVBAを勉強した方が楽
Excelは大変便利ですが、関数の活用ができるだけだと、複雑で万人に読み取りづらい関数を作成するだけになってしまいます。自動化を図るのであれば、関数とマクロを組み合わせるとかなり作成の手間が省けますし、マクロは一度作ってしまえば応用が利くのでぜひ使ってみてください。
それではまた明日。
misskeyでシェアしたい人はこちら →