サイトアイコン マメBlog

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

豆父ちゃん

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

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

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

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

Excel VBAができることは?

 

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

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

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

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

 複数のエクセルファイルを1つのブックにまとめたい。いい方法はないの? こんな要望にお答えします。 この記事では、複数のエクセルファイルを1つのブックにまとめるVBAの導入方法、使い方、を詳しくご紹介しています。 VBA未経験の方でもスムーズに導入できるよう、実際のVBA導入画面を用いて解説を行っていますので是非最後までチェックしてみてください。 「複数のエクセルファイルを1つのブックにまとめるVBA」を導入することで以下のような問題を解決することができます。  毎日、別ブックのシー...
複数のエクセルファイルを1つのブックにまとめるVBA【 設定方法を紹介】 - mamemametochan.com

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

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

 

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

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

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

豆父ちゃんエクセルを使って予定の管理をしたい。使いやすくて便利なエクセルカレンダーを作りたい。こんな要望にお応えします。結論からいうと、VBAを使って便利な機能をエクセルカレンダーに組み込んでしまう!ということです。私が、「こんな機能があると便利だなぁ」と考え付いた機能をVBAを使って表現しています。エクセルカレンダーに導入した機能①年数の切替で日付と曜日が自動的に変更②年間カレンダーから月間カレンダーへのハイパーリンク③年間カレンダーと月間カレンダーの簡単な予定を転記④内容を区別してセルを塗りつぶす...
【エクセルカレンダー】VBAで予定の転記、年数の切替、ハイパーリンクの機能を設定... - mamemametochan.com

とても便利なツールである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を一つ一つ詳しく紹介していきます。 (adsbygoogle = window.adsbyg...
複数のエクセルファイルを同時に操作するVBA【サンプルを使って紹介】 - mamemametochan.com

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

 

 

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

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

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

主にデスクワークをしている方で、図形の操作が必要となるExcelでの書類作成は意外と多いのではないでしょうか・図形の〇をつける・図形の横棒で斜線を引く・図形の三角で印をつける契約書や注文書を作成する際、以前使ったデータをコピーし、参考にしながら作成するという方法がよく使われますが、この方法には大きなリスクがあります。それは、図形の変更を忘れてしまう!ということ 豆父ちゃん私はよく忘れて上司に叱られています・・VBAを使えば図形の変更を忘れてしまう!というリスクがなくなり、ほかにもいろんなメリット...
VBAで図形操作を自動化【 すぐに使えるサンプルを紹介 】 - mamemametochan.com

 

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

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

 

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

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

 

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

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

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

疑問がある人色を変更する処理をVBAを使って自動化したい! こんな疑問を解決します。 この記事ではいろんな「VBAで色を指定する方法」をご紹介します。  セルの色を塗り潰す 図形の色を指定する 罫線の色を指定する テキストの色を指定する上記の処理をVBAを使って自動化することができればエクセル業務の効率を格段にアップさせることができます。「VBAで色を指定する基本操作」から「色を指定するVBAはどのような仕事に応用できるのか」を具体的に紹介しています。コピペで使えるサンプルコードも多数掲載してい...
VBAで色を指定する方法【コピペで使えるサンプルコードを掲載】 - mamemametochan.com

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

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

 

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

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

 

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

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

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

作った資料の印刷をするってデスクワークでは必ず行う仕事ですよね。当たり前の作業と思われがちな印刷作業は意外と時間がかかるし、難しい作業・印刷範囲がずれてしまう・1ページだけ印刷するつもりが全ページ印刷してしまった・毎回印刷設定を確認するのがめんどう… VBAを使えば印刷作業を効率的に行うことが可能に!・印刷枚数が決まっている資料の印刷設定を行うVBA・条件によって印刷する資料を変更するVBA・プリンターを選択するVBA 書類によって印刷する種類や部数が決まっていることってありますよね。ある程度印刷...
VBAを使った印刷設定【 印刷の自動化で作業効率を格段に上げる方法 】 - mamemametochan.com

 

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

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

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

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

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

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

 

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

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

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

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

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

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

・宣言

・基本構文

・変数の型

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

豆父ちゃん

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

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

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

モバイルバージョンを終了