Excel VBAができることは?【 Excel VBAのメリットとデメリットを紹介 】

Left Caption

豆父ちゃん

プログラミングでよくExcel VBAって聞くんだけど、結局なにができるの?

こんな疑問にお答えします。

結論から言うと、Excel VBAはエクセルを使った毎日のルーティーン作業を自動化してくれるとっても便利なもの!です。

エクセルを使った事務仕事を10年間行っている私の体験を含めてExcel VBAのできること、メリット、デメリットを紹介します。

Excel VBAができることは?

 

できることの紹介ということで見出しを作りましたが、結論から言うとExcel VBAはなんでも出来ます。まだまだ勉強不足で調べながらプログラムを作っていますが、VBAの機能不足によって私の考えるものができなかったということはありません。

その中でも特に驚いた機能が、ほかのエクセルファイルを開く→処理をする→閉じる!というもの。

エクセルをよく使う業務では、同じような内容のエクセルファイルがいっぱいあって、ファイル同士を参照したり転記したする作業が多くあるのではないでしょうか。

そんなとき、ほかのエクセルファイルを開く→処理をする→閉じるというExcel VBAが大活躍します。

上記の記事では複数のエクセルファイルを1つにまとめるVBAについて紹介しています。VBAを実行すると、指定したエクセルファイルの全シートを一瞬でコピーしてしまう!というもの。

ほかのエクセルファイルを開く、コピーする、貼り付ける!という作業をしている方におすすめです。

 

Excel VBAを使えば、条件によって色を変化させることによって罫線を操作することなどいろんなことを自動化することができます。

例えば、日付を入力すると曜日が自動で入力され、土曜日なら青、日曜日なら赤に塗りつぶしす!というような処理もExcel VBAで作ることができます。エクセルでカレンダーや予定表を作るとき、このようなVBAがあればとても便利ですよね。

この曜日や日付を操作するVBAは下記の記事で実際に使われています。

とても便利なツールであるExcel VBAですが、使い方や環境によってメリット・デメリットがあります。私が仕事でExcel VBAを導入しようとしたときの体験を含めて紹介していきます。

 

 

Excel VBAのメリット

Excel VBAのはいろんなメリットがあります。

 

  • 時間をかけて行なっていた業務が一瞬で終わらせることができる
  • 一旦プログラムを作ると、ずっと使うことができる
  • 一つのセルに複数の数式のプログラムの指令を出すことができる。より複雑な命令を出せる
  • セルに入力した数式が壊されない
  • セルに直接数式を組みすぎてエクセルの動きが遅くなることがなくなる

中でも最大のメリットは 作業中にヒューマンエラーが発生しない! ということ。

※ヒューマンエラーとは人間の操作による誤操作のこと

エクセルを使って1日中単純作業をしていると必ずヒューマンエラーが発生してしまいますよね。

 

  • 提出書類の日付の更新を忘れた。。
  • 色のを付け忘れた。。
  • 表の罫線が欠けていた。。

Excel VBAを使えば、ヒューマンエラーを確実に防ぐことができます。ヒューマンエラーが発生しないということは会社員としての評価にもつながります。

エクセル作業の効率化を行うのであれば、必ずExcel VBAの導入を検討しましょう。

 

Excel VBAのデメリット

Excel VBAにはメリットばかりではなく、デメリットもあります。

 

  • VBAを組むのに時間がかかる
  • 作ったVBAに不具合が生じたときVBA作成者以外の人の修正が難しい
  • Excel VBAの知識がない人には理解されないことがある

私がExcel VBAを職場で導入しようとしたとき上司から、「作ったVBAが正常かどうか判断できないから導入は難しい」と言われました。

これを言われてしまったらVBAの導入は不可能です。もしVBAに間違いがあれば、会社に大きな損害を与えてしまう可能性があります。そのとき問題になるのがVBAの中身(プログラム)を理解せず使わせていた上司になってしまう。

いくら便利なVBAでも、上司の承認なしでVBAを導入することは絶対にやってはいけない!

このデメリットのせいで単純な業務なのに手作業で処理を行い貴重な時間を費やしてしまうことも。。これからExcel VBAの勉強をして仕事の効率を上げたい!と考えている方はデメリットをあらかじめ考慮しておきましょう。

 

エクセル業務の効率化に繋がるVBAの紹介

ほかのエクセルファイルから必要なデータを転記するVBA

データを転記するVBAを作成することができれば、エクセル業務の効率は格段に上がります。

私の職場ではエクセルカレンダーだけでも4種類のデータがあって別々のエクセルファイルで管理していて、全てのエクセルカレンダーを更新するのは手間がかかるうえに更新するのを忘れてしまう!という問題があります。

そこで活躍するVBAが、週間カレンダーのエクセルファイルを操作すると、年間カレンダーのエクセルファイルに変更事項を転記する!というものです。

下記の記事では複数のエクセルファイルを同時に操作するVBAを紹介しています。記事の中ではコピーしてすぐに使えるサンプルVBAも掲載されています。

ほかのエクセルファイルに転記するVBAはとても便利で、同じような内容のエクセルを複数扱う方におすすめです。

 

 

丸や斜線などの図形を操作するVBA

図形を操作するVBAはオブジェクトの丸や斜線や矢印などの操作を自動化するものです。オブジェクトの表示場所、大きさ、色を指定することができるのでいろんな処理を行うことができます。

中でも一番使われるのが、「有」の文字に〇、「無」の文字に〇をつけるというVBAです。図形の操作について下記の記事で詳しく紹介しています。

 

図形の操作が必要な業務では、データのコピーを使いまわして図形の変更を忘れる!という問題があります。この問題を防止してくれるのが図形を操作するVBAです。

図形を操作するVBAのできること

 

  • テキストに〇をつける
  • テキストを斜線で消す
  • 三角の 図形で印をつける

このVBAはいろんな業務に応用することができるので是非使い方をマスターしましょう。

 

文字やセルの色を操作するVBA

色を操作するVBAはテキストの色やセルの塗りつぶしの操作を自動化するものです。条件によって色を変更することができるのでいろんな処理を行うことができます。

中でも一番使われるのが、条件によってセルの色を操作するというVBAです。色の操作について下記の記事で詳しく紹介しています。

色の操作はよく使われる処理で単純な作業と思われがちですが、意外と手間と時間がかかる作業です。VBAを使って色の操作を自動化すれば手間と時間を大幅に減らすことが可能です。

色を操作するVBAができること

 

  • セルの塗りつぶし
  • フォントの色の操作
  • 罫線の色の操作

このVBAを使えばエクセル業務の効率が格段にアップするはずです。是非使い方をマスターしましょう。

 

印刷範囲や印刷Sheetを指定して必要な書類を素早くで印刷するVBA

印刷設定を操作するVBAは印刷範囲や印刷部数や印刷枚数の指定を自動化するものです。条件によって印刷設定を変更することができるのでいろんな処理を行うことができます。

中でも一番使われるのが、条件によって印刷設定を操作するというVBAです。印刷設定の操作を行うVBAについて下記の記事で詳しく紹介しています。

 

印刷業務は事務作業の中で時間と手間を要する作業ではないでしょうか。

・余白設定に時間がかかる

・ページ範囲設定に時間がかかる

・Excelデータが複数分かれていてデータ毎の印刷設定に時間がかかる

私が職場で導入した印刷VBAは条件によって印刷するSheetを指定、またはほかのExcelデータを開いて印刷するというものです。

このVBAは職場のみんなから「時間短縮になった」「ミス印刷がかなり減った」など評判のいいものになりました。ルーティーン化している印刷業務にはVBAの導入がおすすめです。

 

これからExcel VBAを始めようとする方へ

Excel VBAのメリットやデメリットを紹介しましたが、総合的に考えてExcel VBAはとても便利なものなので積極的に勉強し導入するべきです。

私はExcel VBAの参考書を使って勉強を始めました。

この参考書では宣言や変数といったような初心者にとって難しい部分の紹介よりもExcel VBAでなにができるのか、どんな仕事にでもあるめんどうな作業を自動化するサンプルVBAが詳しく紹介されています。

Excel VBAは難しいと思わせるよりもExcel VBAってこんなこともできるのか!というワクワクを初心者に与えくれます。エクセル参考書の購入を検討している方におすすめです。

Excel VBAには初心者には理解しずらい難しい項目がいくつかあります。

・宣言

・基本構文

・変数の型

これから勉強する方は、これらの項目で難しいと感じてもあきらめずに頑張ってもらいたいと思います。

Left Caption

豆父ちゃん

正直、変数や宣言は完璧に理解していないし適当にやってます!

私は参考書やネット情報を使って独学で勉強したため私が作ったVBAを正しい知識のある方が見たとき、無駄が多くヘンテコなVBAだ!と思うでしょう。

VBAは適当でも、自分の考えをExcel VBAで表現して業務の効率化をすることができています。自分の考えを表現出来るようになれば面倒なVBAの開発が楽しくなってくるはずです。いろんなVBAの開発に挑戦していきましょう。