Excelの「VBA」で自動化!仕事なんて高速で終わらせよう!

VBAで仕事を効率化しよう


パソコンを使った仕事をするうえで、ほとんどの方がExcelを使用していますし必須ツールの一つになっています。

私の職場でも表計算の目的以外に業務手順書などの資料をWordで作成せず、Excelを使って資料として保存する文化です。

そんな日頃からExcelを使って仕事をする機会が多い方は、実は仕事を効率化できるチャンスが隠れています。

VBAはプログラミング言語の1つ

Excelで仕事をする際に、例えば「グラフを手動で作るのが時間がかかる」、「項目ごとに別シートに記入したいけど、一々ページを切り替えないといけないなど手間が発生して時間がかかる」など、既に入力されてるデータを元に処理を進めるときに手間を感じて仕事の効率が悪いことが多いです。

そんなときに使えるのがExcelのVBAと言われるプログラミング言語です。

Excel業務を自動化しよう


まずExcelのVBAとは何かご紹介します。ExcelのVBAとはMicrosoftのExcelに用意されているプログラミング言語で、特に追加のソフトウェアをインストールする必要がなく、Excelがあればすぐに利用することができます。

プログラミング言語と聞くと一気にハードルが上がる方もいらっしゃるかもしれませんが、ExcelのVBAは様々ンプログラミング言語がある中で比較的簡単な方に部類に入るプログラミング言語です。

ExcelのVBAを使ってプログラムを作ることで、ボタン一つで定型作業の自動化や作業による人的ミスの回避にも繋がり効率化はもちろん品質の面でもメリットがあり、わざわざ人が時間をかけてやらなくていいExcel業務を自動化することで格段に仕事の効率を上げることできます。

重宝される人材として扱われる可能性もある

ただ初心者の方がプログラミングしていく上で、煮詰まる場面もあると思います。私は現役のエンジニアですが未だに煮詰まってしまう場面がたまにあります。

ですがExcelのVBAに関する情報はインターネットに多く載っており、情報量が多いので試行錯誤して諦めなければ必ずできるものです。

ExcelのVBAができるだけで仕事効率はグッと変わりますし、職場によっては重宝される人材として扱われる可能性もありますので、是非時間を掛けてでも身に付けて欲しいスキルだと思います。

VBAでエンジニアとして活躍できる!?


またExcelのVBAのスキルがきっかけでエンジニアとして活躍する方もいます。

私自身も学校でプログラミングを習っていましたが、実際の現場では実務経験が伴わないとプログラマとして採用されません。

新卒で入った会社で仕事の効率化したく業務の合間を見つけ、勝手にExcelのVBAで効率化したことがあります。

VBA習得で年収もアップ!?

実はそのExcelのVBAの効率化きっかけで、その会社を退職後は、ExcelのVBAをメインで使う会社に入社することができ、今ではExcelのVBA以外にも複数のプログラミング言語のスキルを身に付けてエンジニアとして働いていますし、年収も同年代と比べたら少し上に行くくらいは貰っています。

少し話は逸れましたが、仕事でExcelを使っており自動化できそうな仕事があれば、経験問わず迷わずExcelのVBAに挑戦することをお勧めします。

【ケース1】VBAはどんな仕事で役立つか?


VBAはどんな仕事で役立つのか知りたい人は多いと思います。

例えばハードウェア設計の仕事の一環で、作った基板などの測定が重要な部分です。

電圧を変えたり、入力信号を変えたりして、出力を計測するので、組み合わせが多くてかなり時間が必要です。また、計測のデータを画面読んで入力するので、入力ミスの可能性があります。

効率化とミス削減に役立つのはExcel VBAです。実はVBAの機能を使って、計測器を直接制御できます。やり方は計測機のよって少しことなります。例えば一部の安定化電源の場合はUSBで接続し、提供されているDLLを使う方法があります。電圧の設定、電源のON/OFFなどをDLLのコマンドを使って制御できます。

自動化して時間を有効活用しよう

もう一つの王道な方法としてはLabviewのDLLを使うことです。こちらの場合はLabviewのI/Fを使って、GPIBのコマンドを送れます。先と同じようにLabviewのDLLを読み込む必要がありますが、それによって、どの計測機でも制御ができます。

そういう組み合わせを使って、ベースの計測Frameworkをまず作ります。

そのうえ、Excelで条件をTable化にします。例えば、電源電圧と入力周波数のリストを作ります。

計測マクロはそれぞれの値を読んで、計測機を設定し、結果を読み出し、その結果を決まったExcelセルに書き込みます。

予めグラフを準備すれば、計測も自動で行うし、レポートまで自動で作成ができます。長いもんで5000ポイント以上のデータを自動化したことがあります。計測は2〜2時間かかりますが、自動なのでその間別の作業ができます。

ExcelのVBAとハードウェア設計の関係性

最初はDLLのコマンドを調べたりする、トライアルしたりするに少し時間がかかりますので、一回しか使わないのなら意味があんまりありませんが、何回も行う計測ならメリットが多いと思います。

ExcelのVBAとハードウェア設計にあんまり縁がないと思われがちですが、実は多いに役く立ちます。

【ケース2】仕事をクリック一発で終わらせる


仕事で、日々の業務レポートをまとめたり、お客様の注文データを社内の業務用Webサイトへ入力したり、あるデータを調査するためにWebサイトを何ページも「次へ」「次へ」とクリックしてデータをExcelにまとめたり、という、手順が決まっている業務はたくさんあると思います。

そのような、パソコンを使って行う、一定の手順が決まっている仕事が、ExcelのVBAで作ったプログラムでボタンクリック一発で終わらせることができたら、どれだけ仕事が捗るでしょうか?

ExcelのVBAを使えば、Excel上の作業はもちろん、Seleniumという拡張機能を使えば、パソコンにインストールされているWebブラウザ(ChromeやIE、Firefoxなど)をプログラムで操作することができます。

プログラミング技術を習得しよう

VBAとSeleniumuを使ったプログラミング文の書き方を勉強する必要がありますが、マスターして実際に業務が自動化できるようになれば、投資した勉強時間はあっという間に元が取れるようになると思います。

単純なプログラムであれば、「Excel VBA Seleniumu」等のキーワードでWeb検索すれば、いくつも先人たちが事例を丁寧に解説してくれているサイトを見つけることができますので、調べながら勉強すれば、プログラミング技術が身につくのも早いです。

プログラミングを学ぶ際のモチベーションを保つ

本で学ぶようなプログラミングは、「Hello World」とかを画面に表示させるような初歩から入るので勉強しやすいですが、自分の仕事とは直結しないので、イマイチモチベーションを保つのが難しかったりします。

しかし、自分の仕事を自動化するためにプログラミングを学んで、そのやり方を調べて、自分の仕事で実践、アウトプットを出すという目的があれば自然とプログラミング勉強のモチベーションも保ちやすいと思います。

ぜひ参考にしてみてください。