Workin' in the Life

Workin' in the Life

IT活用により、ワークライフバランスを実現させるためのブログ

エクセルVBA できることは?「実際に効果を感じた事例8選」

f:id:offcourse839:20200802113347j:plain

こんにちは、こたつです。

 

私は事務職として独学でVBAを学んでから、5年が経ちました。

 その間、VBAを使うことで、仕事において大きな効果を生むことができました。

 

結論、VBAによって働き方が劇的に変わります。

周りからの評価も一変します。

 

今回、私が実際にVBAを使って、大きな効果を感じた事例を、8つ紹介したいと思います。

 

皆さんの仕事でも生かせるものがあれば、参考にしていただきたいです。

 

 

目次

 

①エクセルの編集作業

私が昔、毎日行っていた作業の話です。

与えられたデータをエクセルを使って、見やすいように編集していくという作業がありました。

セルの移動や削除、日付の入力、フォント色や背景色の変更、並び替えなど、様々なことを行っていました。

 

 しかしこれをVBAを使って、ボタン一つで編集できるようにしました。

 

これにより、30分くらいかかっていた作業をほぼ0分に短縮し、そして手作業によるミスも無くすことができました。

今にしては、すごく無駄なことをしていたと感じます。

 

 

皆さんは毎日エクセルを手入力で、編集していたりしないでしょうか?

 

 

「エクセル関数を使ってるから大丈夫!」と思っている方も、やはり何かしら手作業が生じているはずです。

VBAを使えば、ボタン一つで全ての編集が行えるので、一度検討してみてはいかがでしょうか。

 プログラミングをする人のイラスト(男性)

 

 

②他のエクセルにデータを入力する

VBAによって、他のエクセルファイルの操作も行えます。

編集や名前の変更など、様々なことができます。

 

私は実際に、他部署のエクセルに、自部署のエクセルデータを貼り付けるという作業が定期的にあります。

本来なら、自分のエクセルデータをコピーし、他部署のエクセルを開いて、決められた位置に貼り付けを行います。

 

これがどうも面倒で、他部署のエクセルがどのフォルダにあったのかを、毎回探すことにもストレスを感じていました。

 

しかしこれを、他部署のエクセルを開かなくても、ボタン一つでデータを、そのエクセルの決められた位置に貼り付くようにしました。

 

これによって作業が楽になり、貼り付ける場所を間違えて、他部署から怒られることもなくなりました。

 

 

③ダイアログボックスによる入力補助

私が行っている作業で、 エクセルを使った依頼フォームに依頼内容を入力する、という作業があります。

 

そこにはいくつもの依頼項目があります。

さらにそれは複雑な依頼フォームとなっており、どこに何を入力するのかをよく間違えそうになってしまいます。

 

入力内容は毎回違うので、ボタン一つで全て自動入力というわけにもいきません。

 

そこで、ダイアログボックスによる入力補助を行いました。

f:id:offcourse839:20200801161531p:plain

 

入力する項目が順番にダイアログボックスにより表示され、その指示通りに入力をしていきます。

入力した文言は、決められた場所に入力されていくので、これによって入力間違えがなくなり、ストレスも軽減されました。

 

ちなみにこのやり方と、先ほどの他のエクセルにデータを貼り付ける、という技術を組み合わせ、ダイアログボックスの指示通りに入力するだけで、他部署への依頼を済ませることができました。

 

 

④在庫数からの材料発注

月に一度、在庫数を確認し、必要数を調達部のエクセルに入力する、という作業があります。

今までは材料の在庫数を確認して、調達部のエクセルに必要であろう数を、ひとつひとつ入力していました。

 

これも面倒だったので、VBAを使って必要数が自動で入力されるように行いました。

 

 まず自部署のエクセルに、それぞれの材料の安全在庫数を入力しておき、そしてそれを下回った分だけが、調達部のエクセルに自動で入力されるようにしました。

 

つまり、在庫数を入力するだけで、後は自動で材料の必要分が、調達部のエクセルに入力されるのです。

 

これにより、必要数を考えるという作業がなくなり、入力ミスも軽減され、非常に作業が楽になりました。

 

 

⑤条件を指定して値を入力

生産品目の量や数などによって、生産ラインを決めなくてはいけない作業があります。

今までは、それを人が目視で確認し、「これぐらいの量と数だったら、ライン番号⑤だな。」というように、ひとつひとつ人が判断して入力していました。

 

そのような作業も、VBAで条件を指定し、自動で生産ラインが入力されるようにしました。

 

ちなみに条件が複雑になればなるほど、VBAのコードも複雑になっていきます。

しかし一度コードを書けば、後はそのプログラム通りに、コンピューターが判断してくれます。

 

むしろ複雑であるほうが、VBAを使うメリットはあります。

毎回そのような難しい判断をしなくてよくなり、作業も属人化されません。

 

「これは長年の感覚がないと判断できないんだ!」というような作業は、今の時代においては、ほとんどコンピューターにやらせることができます。

その長年の感覚を言語化し、VBAによりプログラムを組めばいいのです。

f:id:offcourse839:20200726105015p:plain

 

⑥条件にあてはまればメッセージを出す

「もし〇〇という品目があれば報告してくれ」とか、「もし数量が2000を超えれば何か印をつけてくれ」と言われることがよくあります。

 

正直なところ、これを言われるとすごく嫌な気持ちになります・・・

常にそのようなことを頭に入れながら、作業をしなくてはいけないからストレスがかかるからです。

しかも、もしそれを忘れようものなら、「確認しろって言っただろう!」と怒られてしまいます。

 

しかしそれも、VBAを使えるようになるまでの話です。

 

なぜならVBAを使ってその条件を指定しておけば、ダイアログボックスが出てきて気づけるようにしたり、自動で印がつくようにできるからです。

つまり自分は何も考える必要がなくなります。

f:id:offcourse839:20200726105526p:plain

これは本当にVBAを覚えて、良かったと感じる瞬間です。

 

 

⑦新しいフォルダの作成・エクセルの保存

 VBAによって、エクセルの編集を行った後、決められた場所にそのエクセルを保存するという作業がありました。

そして月が替わるごとに、その場所に月毎のフォルダを作成し、その中へとエクセルを保存していきます。

これも毎日行う作業だったので、なかなか面倒でした。

 

このような作業も、今ではVBAを使って自動化させています。

まず決められた場所に、名前を付けてエクセルの保存を自動で行います。

そして月が替われば、自動でその月の名前でフォルダが作成されるようにし、そこへエクセルが保存されるようにしました。

フォルダのイラスト

 

若干難易度が高いやり方でしたが、この技術も様々なことに応用できるので、是非使ってみてほしいと思います。

 

 

⑧アクセスとの連携によるデータ抽出

私はよく、エクセルとアクセスを連携させることがあります。

 

ちなみにアクセスとは、エクセルと同じマイクロソフトの製品で、「データベースを管理するのが得意なソフト」といった感じです。

もちろん、エクセルでもデータベースの管理はできます。

しかし、エクセルはデータベースの管理に特化したソフトではないため、本気でデータベースを管理するのであれば、アクセスがおすすめです。

 

今はアクセスが含まれたMicrosoft365を契約している、という企業がかなり多いのではないでしょうか?

もしアクセスが使える状態なのであれば、使わない手はないと思います。

 

また、実際にどのようにして連携させているかと言えば、まずエクセルVBAでアクセスのデータを抽出してきます。

そしてそのデータをエクセルに貼り付け、あとはそのエクセルの中で思うように編集をしていく、ということをボタン一つで行えるようにしています。

 

アクセスからデータを抽出してくるコードを書くのは、少し難しそうに思われますが、「マクロの記録」を使えば簡単にできます。

 

アクセスを使えるようになれば、世界が広がります。

一度アクセスについて、勉強してみてはいかがでしょうか?

 

 

おわりに

今回は、私が実際に使って効果を感じている、エクセルVBAの事例を紹介していきました。

この他にも、Outlookでメールを送れるようにしたり、スクレイピングという技術でWebサイトのデータを収集するなど、あらゆることができます。

 

働いてる職場によって、やりたいことは様々だと思います。

この記事を参考にして、自分の仕事に合ったやり方で、VBAを使っていってもらえれば幸いです。

 

ちなみに、これからエクセルVBAを覚えたいと思っている方は、私の過去記事でも

サクッと 紹介しているので、是非見ていってください。

wbala.hatenablog.com

 

それでは、最後まで読んでいただきありがとうございました。