知っていれば価値が分かる!! 仕事がめっちゃ早くなるVBAのメリット・デメリット

もう年末ですね。過ぎてしまえば早いものです。

特に年末はイベント盛りだくさん。

楽しいこともいっぱいですね。

女性は、クリスマスやお正月で食べすぎないように

注意が必要かもしれませんね。

 

やることが沢山ある年末ですが、イベントの他にも年賀状の作成や

その他に片付けておかなければいけない仕事もあると思います。

そんな忙しさを解決してくれる方法を今回はご紹介したいと思います。

 

隣の坂田さん
参ったなぁ、
資料作るのにこんなに掛かるなんて思ってもなかった。
向かいの長谷川さん
どうかしたんですか?
なんだかニヤけてましたけど
隣の坂田さん
え??俺ニヤけてた?
どっちかって言うと悩んでたんだけど
向かいの長谷川さん
そうですか??
私にはどうやってもニヤけてるように見えましたけど、
新婚さんですもんね~。しょ~がないかぁ
隣の坂田さん
あはは……。長谷川さんにはそう見えるんだね。
向かいの長谷川さん
冗談ですよ。本当は何で坂田さんは悩んでたんですか?
隣の坂田さん
いや、仕事が溜まってるんだけど、
早く用意しなきゃならない資料作りとかに時間が掛かって
参ったなと思ってたんだ
向かいの長谷川さん
なるほど、確かにありますよね。
もっとチャチャって片付けば楽なんですけどね
ツルトロ
どうしたの?
二人揃ってなんだか悩み事があるみたいだけど
向かいの長谷川さん
あ、ツルトロさん。大したことじゃないんですけど
坂田さんが俺は仕事ができない男だ~。
って叫んでたんで慰めてたんです。
隣の坂田さん
いやいや。違うよね。慰められた覚えないんですが
ツルトロ
ははは、
坂田君は相変わらず長谷川さんの手のひらで転がってるね。
隣の坂田さん
やめてくださいよ。なんですか手のひらで転がってるって
ツルトロ
いやいや、冗談だよ。ところで本題は何なんだい?
隣の坂田さん
いや、実は……。
ツルトロ
なるほどね。
確かに重要な資料ではあるけど、毎回手間が掛かる作業だね。
よし、分かった今回はそんな二人のためにExcelVBAを教えよう

作業を大幅に改善してくれるVBAって何?

VBA とは

『Visual Basic for Applications(ビジュアル・ベーシック・フォー・アプリケーションズ)』

のことを言います。

なんだか難しいですね。

英語ばっかりだからなんだか外国語みたいです。

食べられそうにもありません。

 

ざっくり簡単に言うと、「Excelを使ったプログラミング」のことです。

 

もう少しだけ詳しく言うと

「ビジュアル・ベーシック」というプログラミング言語をExcel・Word・Access・Internet Explorer

など、Microsoft製のソフトの作業を自動化してくれる設計図を書く作業

こんな風に思ってもらえば想像し易いでしょうか。

 

聞いているだけでも難しそうですよね。

すごく簡単に出来るとは言えませんが、覚えられると「すごいヤツ」だと分かる機能です。

 

「言語(げんご)」という表現は、プログラミング名+言語という風に日本では表現されます。

私なりの解釈ですが、「言語=言葉」なので一種の「方言」だと思って下さい。

それぞれの言語は、出来るとことと目的に違いがあるのでそう言い表しているんだ。

くらいの認識で大丈夫です。『津軽弁と大阪弁』のような感じです。

 

VBAのメリット・デメリット

今回は、デメリットから触れていきます。

  1. 「VBAは、簡単に覚えられます」は嘘
  2. ExcelやWordの基礎知識は必須
  3. ExcelやWordを使いこなせないと意味がない
  4. 「強い信念と根気強さ」がなければ、複雑な処理は出来ない
  5. 仕事として使う場合は、中途半端なものは評価されない
  6. 途中で挫折する可能性が高い

 

つづいては、メリットです。

  1. 会社で5分間パソコンの前で『爆睡』していても、上司から怒られません
  2. 重要かつ毎回行う処理が『爆速化』します
  3. しょっちゅう入力ミスをする「困ったちゃん」撲滅大作戦が成功します
  4. 「チョット分からないとすぐ聞いちゃうよ」症候群の人の完治が出来ます
  5. 「どうやって答えを出すのか分からない」石頭をサラサラパウダー頭に改善できます

 

最初から、やる気を削ぐような例でごめんなさい。

でも、私も幾つかシステム的なものを作ってきましたが、コレが現実です。

たくさんの失敗や挫折を経験して、ようやく少しは使えるものを作ることが

出来るようになった実体験から言えることです。

 

その一方でメリットが非常に大きいです。

覚えてしまえばコッチのもの。隣で一生懸命作業している人を横目に

コーヒーブレイクをしていても、隣の人より圧倒的な量の仕事が終わります。

 

VBAのデメリットはどうして多いのか?

隣の坂田さん
なるほど。確かに便利そうではあるけど、難しそうだな。
向かいの長谷川さん
そうね、坂田さんには、ちょっとハードルが高いわね。
私は便利な方がいいからマスターしたいわ
隣の坂田さん
え?何で断定?僕には無理でも何で長谷川さんは大丈夫なの?
向かいの長谷川さん
努力と根性の違いです。
隣の坂田さん
……。
ツルトロ
大丈夫だよ。坂田くん。
確かに長谷川さんの言うことにも一理あるけど心配ないよ。
隣の坂田さん
ツルトロさんまで長谷川さんの味方ですか?
ツルトロ
ははは、冗談だよ。じゃあ、デメリットの話をしようか。
VBAは確かに簡単には覚えられない。コレは事実だよ。
向かいの長谷川さん
え~。それじゃあ私にも覚えるのは無理ってことですか?
ツルトロ
いいや、VBAには大きく分けて2種類あると言えるんだ。
①数行で動く簡単なマクロ
②多くの処理をする複雑なマクロ
それと「マクロ」っていうのは、プログラムのコードのことだよ。
隣の坂田さん
簡単なマクロっていうのは例えばどんなマクロなんですか?
ツルトロ
例えば、良くプログラムの勉強を始める時に使われる
「Hello World」という言葉を表示させる機能は、こんなに短いんだ。
Sub ようこそVBAの世界へ()

MsgBox "HelloWord"

End Sub
隣の坂田さん
へぇ~、この短さでもプログラムを組んだってことになるんですね。
ツルトロ
その通り。その他にマクロには自動記録と呼ばれる機能があって、
自分の操作を自動的にコードにしてくれる機能があるから
簡単だと言われる事が多いんだ。
向かいの長谷川さん
じゃあ、全部自動で記録しちゃえば、
私も苦労しないでマスターできちゃいますね。
ツルトロ
そうだね。確かに自動記録を使えば出来るかもしれないけど、
間違った作業や要らない作業も記録してしまって処理が重くなりすぎたり、
記録できないこともあるから結局は自分で編集する必要が出てくる。
経験から言うと、自動記録の限界は比較的すぐにやってくるんだ。
隣の坂田さん
なるほど、そんなもんなんですね。
じゃあ、他のデメリットも経験から言えることですか?
ツルトロ
そうだね。ExcelやWordの操作は、当然出来て当たり前。
じゃないと、標準機能でできることをわざわざ作ってしまうなんていう
無駄が起こってしまうこともあるからね。
向かいの長谷川さん
当然といえば当然ね。
何でも基礎が大事なのは全ての事にも言えるわね。
ツルトロ
その通り。そして「強い信念と根気強さ」も大切。
最初からやりたいことがパッとできるようになるなんてことは、まず無い。
だから気持ちの部分がすごく大事になるんだ。
隣の坂田さん
確かに。
スポーツをやっていても最初から上手いなんてことはないからな。
ツルトロ
そうだね。あとは周りからの評価というのもある。
いくら自分が一生懸命勉強していても、
仕事で使えなければ無駄な作業
としての評価しかされないんだ。
自分なりに業務の効率化が目的で仕事に取り入れても、
時間ばかり掛かって仕事が進まないなら、
そんなのやめろくらいのことは言われるよ。
隣の坂田さん
確かにそうかもしれませんね。
当然だけど会社は勉強する所じゃなくて、
売上を上げなきゃいけないから効率が悪ければ、
無駄だと言われても当然かも知れない。
ツルトロ
厳しいようだけど、当然のことだよね。
でも、VBAを取得しようとする人は将来に目を向けて取り組んでる
人も多いはずだから、強い信念だけは持っていてほしいんだ。
でも結果が出せなければ意味がないということは、
挫折していく人も自然と多くなっていく可能性が非常に高いんだ。
向かいの長谷川さん
そうね。
私も仕事をしていて、VBAを使いこなして仕事をしている人は聞いたことが無いわ。
隣の坂田さん
俺は、昔SEなんかの仕事をしていた先輩達と仕事をしてきたことがあるけど、
すごすぎてついていけなかったよ。
ツルトロ
あえてデメリットから話してきたけど、大切なことなんだ。
それなりの覚悟を持って取り組むことが大切なんだってことを
実感してもらえたかな?
隣の坂田さん
はい。
分かった気がします。
向かいの長谷川さん
そうね。
そう簡単にはいかないっていう覚悟が必要なことは分かったわ。

VBAのメリットは?

ツルトロ
続いてVBAのメリットについて説明していこう。
プログラミングの最大のメリットと言えば、作業の自動化だね。
隣の坂田さん
作業の自動化ってどういう物があるんですか?
具体的に何が便利なでしょうか?
ツルトロ
例えば、現時点での売上の状況をまとめるという仕事があったとするよね。
売上額に関しては、カテゴリー別に日々入力しているデータがあるとしよう。
そのデータをピボットグラフにまとめて分かりやすい資料を作ることが目的だとすると、
普通に作業した場合と、VBAで処理した場合どれくらいの差が出るか考えてみよう。

 

目的:売上の推移を見て、問題点を洗い出し今後の対策を考える会議に使う資料作り

知りたいこと:店舗別の売上の推移と傾向

データの期間:1年間

売上データの種類:CSV

【作業工程】

  1. CSVデータをシステムからダウンロードする。
  2. CSVデータをテーブルとして設定する。
  3. データテーブルをピボットグラフに反映させる。
  4. 売り上げの傾向を分析して対策を考える。

 

私がやっている作業を基にもう少し条件を追加すると

  1. CSVデータは2種類用意する必要がある。
  2. 2種類のデータから、それぞれのデータを集めてきて1つの資料として用意する必要がある
  3. 以前作った資料があるので、手作業もVBAの処理も
    CSVデータを加工→コピペ→ピボットの更新という流れは同じ

 

この条件を基に作業のスピードを見てみよう。

【手作業で資料を作った場合】

  1. CSVデータ①を開く→いらない列を削除タイトルをつける
  2. CSVデータ②を開く→いらない列を削除データ①に貼り付ける
  3. 以前作った資料を開いて、整理したデータを貼り付ける
  4. ピボットを更新して、内容が反映されたか確認する

 

【VBAで処理する場合】

  1. CSVを2種類用意する
  2. 以前作った資料を開いて処理用のボタンを押してCSVファイルを読み込む
  3. 5分待って完成

 

ツルトロ
2人は、どっちの方が早いと思う?
向かいの長谷川さん
どうみてもVBAで処理した方が早いし簡単よね。
隣の坂田さん
うん。VBAは作業の間の待ち時間がある位余裕があるね。
ツルトロ
そう。結果は一目瞭然だね。
VBAで処理した方が早いし待ってるだけで仕事ができる。
上司だって怒るどころか処理してるところを見に来てくれるかも知れないね。
隣の坂田さん
それに、手作業の方は細かいことを言えばもっと作業が必要かも
ツルトロ
良いところに気づいたね。
そうなんだ。使いたいデータだけを素直に出力してくれればもっと作業が早く済むんだけど
それは使いたい人によって違いがある。そうなると出力されたデータには無駄なものや足りないものが含まれている。
それを補って一つの資料にするには、不要な行の削除や調整・データの数によって掛かる時間は変わってくると言えるね。
向かいの長谷川さん
そうですよね。
私と坂田さんが同じ作業をしたって、スピードや正確性で差が出ますよね。
隣の坂田さん
確かに、それに知識量や経験にも左右される。
ツルトロ
その通り。
ところがVBAでの処理の場合、基本的な使い方とデータの用意さえできれば、
あとはボタンをポチッと押すだけあとは待ってるだけで資料を作ってくれるし、
ココに知識量の差は生まれないんだ。
データの量も多少処理に時間が掛かったとしても、
待ち時間が少し長くなるだけで手作業でやるよりも断然早い処理ができるのが最大のメリットだね。
向かいの長谷川さん
そっか、だから重要かつ毎回行う作業が爆速化するなんて大げさなことも書けるのね。
隣の坂田さん
なるほど、たしかに手作業の場合は、入力ミス・作業内容の把握・仕事に対する理解度に左右されることもあるから、そういった面が相当改善されるっていうことなんだ。
ツルトロ
2人に分かってもらえたようで何より。
チョット大げさには書いてるけど、コレはすごいメリットなんだ。
自分にとっても会社にとっても或いはお客様にとってもメリットはあるんだよ。

VBAに触れてみよう

ツルトロ
メリットとデメリットは分かってもらえたみたいだね。
じゃあ、実際にVBAでプログラムした出勤簿を操作してみよう。
ある程度使いこなせるとコレくらいのモノが作れるようになるよという例だね。機能について簡単に説明しよう。

実際の出勤簿も使ってみて下さい
※「コンテンツの有効化」というボタンが表示されたら、必ず押して下さい。

出勤簿のダウンロード

ツルトロ
この「出勤簿」は、凄くシンプルなんだけど、なるべく使う人が使いやすいように工夫したんだ。
向かいの長谷川さん
そうなんですか?
特にプログラムを入力しなくても良さそうな気がしますけど
ツルトロ
そうだね。確かにシンプルだからそこまで必要なさそうだよね。
ただ、管理している側は大変だったのと、使う側が使いやすいように工夫してみたんだよ。
向かいの長谷川さん
例えばどんなところを工夫したんですか?
  1. 普段変更の必要がない「各種項目の設定」は、【登録/修正】ボタンを押すことで修正可能にして普段は変更できないようにする。
  2. 【新規】ボタンを押すことで「シフト・時間」を簡単にリセット出来るようにすることで、毎月同じものを簡単に使える。
  3. 【提出保存】を押すとデスクトップに「氏名+日付」など、管理しやすい名前で自動的に保存することで使用者と管理者のストレスにならないように工夫した。
  4. 通常は、修正出来ないところを管理者だけは修正出来るように【修正】ボタンに暗証番号を設定して変更できる・出来ないをコントロールした。
  5. 時間の入力の時は、テンキーで入力することを想定して『10..00 → 10:00』に変更するように制御している。
ツルトロ
こんな感じかな、文章だと伝わりづらいかもだけど、
色々と試行錯誤しながら使いやすさ重視で作ったんだ。
隣の坂田さん
なるほど、見えないところに苦労があるわけですね。
でも、使っている人にはそういう《機能》なんだってくらいにしか思われませんね。
ツルトロ
そうだね。私も色々作ってきたけど、
特に女性はそういうリアクションだね。
「へぇ~」って言って貰えればOKって考えるのが良いと思うよ。
隣の坂田さん
そうか。プログラムを理解している人には色々と通じるところはあるけど、
普通の人にはそれがどれだけ試行錯誤されているのかは分からないですよね。
ツルトロ
そう、プログラムを組むっていうのは、
職人技だから表からじゃ、ほぼ分からないよね。
精巧に出来た腕時計と同じ感覚なんじゃないかな。
隣の坂田さん
腕時計と同じってどういうことです?
ツルトロ
腕時計は、正確に時を知らせてくれるよね。
日本は特に時間にうるさいから正確さは最重要。
でもどういう仕組できちんと動いているのかは詳しい人じゃないと分からない。
でも正確で質が良い時計はすごく需要があってみんな使っている。
つまり表から分からなくてもしっかりした物を作ることで信頼され、ときに頼られるのがプログラミングの本質というわけだね。
隣の坂田さん
そういうことか。
逆に目立つことが好きな人には向かないとも言えるのかな?
ツルトロ
それはどうだろうね。
ひょっとしたら向かない場合もあるかもしれないけど、全てはやる気次第かな。
今回はメリット・デメリットについて触れてきたけど2人共分かってもらえたかな?
向かいの長谷川さん
はい。なんとなく分かった気がします。
隣の坂田さん
そうですね。
大変な部分もあるけど、出来上がった物を使ってもらえるのは楽しいかもしれませんね。
ツルトロ
そうだね。
大変な分得るものは大きいからね。
まずは基本を抑えてVBAを使えるようになってみよう。

 

最後までお読みいただきありがとうございました。この記事が、少しでもお役に立てたら幸いです。

ご意見もいただけると励みになります。

それではまた、お会いしましょう。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です