エクセルVBAでできること7選!超初心者から始める業務効率化入門

  • 「VBAを使って業務効率化したいけど、何ができるかよくわからないなぁ……」
  • 「VBAでできることや、具体的な始め方を知りたい……」

VBAが便利なことはわかっても、具体的に何ができるかわからない人は多いでしょう。

そこで今回は、VBAの概要やマクロとの違いや、VBAでできることを7個ご紹介します!

これからVBAをはじめてみたい方は、ぜひご覧ください。

VBAとは?マクロとの違いも解説!

VBA(Visual Basic for Applications)とは、Microsoft Officeのアプリケーション操作を自動化できる、プログラミング言語です。

VBAを駆使することで、Excel、PowerPoint、Outlookなどと連携した自動化ツールが作れます。

またVBAと似た言葉に「マクロ」があります。マクロとVBAの違いは、以下のとおりです。

  • マクロ:操作を自動化するための機能
  • VBA:マクロの処理を動かすプログラム

具体的には、以下のようなイメージです。

VBAとマクロの違い

VBAを使ってできること7事例

ここからは、VBAの活用方法を7つご紹介します!

事例1:Excelの作業を自動化できる

VBAはExcelで使われることが多く、以下のような作業を自動化できます。

  • 複雑な計算をする
  • データ一覧からグラフを作成する
  • 日次データから月次データを作成する

Excelのちょっとした作業だけでなく、複雑な処理も自動化できます。

事例2:パワポと連携して資料作成が楽になる

VBAを使えば、ExcelのグラフをPowerPointにコピペするツールも作れます。

定期的な報告資料や分析資料を自動化できるので、業務が楽になりますね。

事例3:フォルダ整理をするツールが作れる

Excelの自動化だけでなく、フォルダ整理ツールも作れます。

たとえば会社の部署名変更の影響で、ファイルの一括更新が必要になるケースがあると思います。

手動操作で修正するとミスが発生しやすく、時間もかかってしまいますよね。これらの作業は、VBAでツールを作れば効率化できます。

ファイル名一括更新、不要ファイルの一括削除、ファイルの一括移動などができるため、フォルダ整理が楽になるでしょう。

事例4:レポートを自動保存するツールが作れる

Excelで作ったデータ一覧から、レポートを作成することもあるでしょう。

データをレポート用のシートにコピペし、手動操作でPDF保存すると……時間がかかってしまいますよね。

VBAを使えば、ExcelシートからPDFへの出力を自動で行えます。データをレポートにコピペする手動操作が、ボタンクリックのみで終わるため、業務が楽になるのです。

事例5:自動でメール送信するツールが作れる

VBAでは、Outlookと連携した自動化処理が作れます。

メールを一括送信できるツールも作れるので、営業の方はとくに業務が楽になりますね。

普段使っているExcelがコントローラになるため、使い方も簡単です。

事例6:Webからデータを取得するツールが作れる

Webから手動操作でデータを集めて、分析資料をまとめる方もいるのではないでしょうか。

一時的な作業であれば手動操作でも良いですが、定期的に同じ作業をする場合は……少し手間ですよね。

VBAを使えば、Webからデータを自動で取得するツールが作れます。応用すれば、以下のような業務を自動化できます。

  • Webのデータを自動収集
  • 収集したデータを使ってグラフ作成
  • グラフを使ってPDFレポート自動作成

事例7:本格的な業務用アプリが作れる

VBAでは、以下のような画面を使った本格的な業務アプリが作れます。

本格的なアプリ画面のイメージ

▲画面サンプル:ユーザ情報登録画面

ボタン、テキストボックス、リストボックスなど、画面に必要なツールはひととおり揃っているため、業務を根本から効率化するアプリが作れるのです。

自分だけでなく、部内や社内の作業効率化に繋がります。

VBAを習得するメリットは?

VBAを習得することで、大きく3つのメリットがあります。

  • メリット1:プログラミングスキルが身につく
  • メリット2:業務効率化を考える力が身につく
  • メリット3:転職するときに役立つ

以下で、それぞれ詳しく解説します。

メリット1:プログラミングスキルが身につく

プログラミングと聞くと、難しい印象を持つ方もいるかもしれません。ただVBAは、環境構築が不要で、Officeさえあればすぐに始められます。

敷居の低さからエンジニアやプログラマーのような専門職以外でも始めやすく、ネットにも情報が多いです。

またプログラミングはほとんどの言語において基本構造が似ているため、VBAで身に付けたプログラミングスキルは他の言語を学ぶときにも活かせます。

メリット2:業務効率化を考える力が身につく

VBAは、ExcelなどのOffice操作を自動化するプログラミング言語です。

そのためVBAを学んでいくことで、自然と業務効率化を考えるスキルが身につきます。

業務効率化を考え、提案できるスキルがあれば、仕事でも大いに役立ちますよね。

メリット3:転職するときに役立つ

VBAのスキルがあれば、転職時にも役立ちます。

専門職以外でプログラミングスキルがある人は貴重です。

ITリテラシーが求められる企業に転職するときにアピールできますし、もちろんVBAエンジニアになる道もあります。

【超入門】Excel VBAを始める方法とは?

次に、Excel VBAを始める方法について解説します。

Excel VBAを始める手順は、以下のとおりです。

  • 手順1:マクロを有効化する
  • 手順2:開発タブを表示する
  • 手順3:VBE(開発エディタ)を表示する
  • 手順4:簡単なサンプルコードを書く
  • 手順5:サンプルコードを実行する
  • 【補足】ボタンクリックで動かす方法とは?

以下でそれぞれ詳しく解説します。

手順1:マクロを有効化する

まず、VBAで作ったマクロを実行するための準備として、「マクロを有効化」します。手順は、以下のとおりです。

ⅰ. ファイルタブから、オプションをクリック

ファイルタブからオプションを開く

ⅱ. セキュリティ センタータブから「セキュリティ センターの設定」をクリック

セキュリティ設定からセキュリティセンターの設定を開く

ⅲ. マクロの設定タブから、「警告を表示してすべてのマクロを無効にする」を選択し、OKボタンをクリック

マクロの有効化を設定する

これで、VBAを実行する環境の設定が完了です。

VBAのプログラムがあるExcelファイルを開いたときは、以下のような警告が出ます。

Excelで警告が出るときのイメージ

警告メッセージの中央にある「コンテンツの有効化」をクリックするとマクロが実行できるようになるので、問題ありません。

VBAでは、ファイル起動時にプログラムを実行する処理が作れます。悪意のあるユーザが作ったファイルを開いてしまうと、ウイルスに感染したりデータを抜き取られたりする可能性もあるので、注意しましょう。

手順2:開発タブを表示する

次に、VBAに必要な「開発タブ」をリボンに表示しましょう。

ⅰ. ファイルタブからオプションをクリック

ファイルタブからオプションを開く

ⅱ. リボンのユーザ設定の右側にある、「開発タブ」にチェックを入れて、OKボタンをクリック

「開発タブ」にチェックを入れてOKボタンをクリック

次のように、開発タブが表示されていればOKです。

開発タブのイメージ

手順3:VBE(開発エディタ)を表示する

ここからは、開発用のエディタ(VBE)を使って、コードを書く手順を解説します。

開発タブの一番左にある、「Visual Basic」をクリックします。

「Visual Basic」をクリック

クリックすると、VBAを書くためのエディタであるVBE(Visual Basic Editor)が起動します。

VBE起動

手順4:簡単なサンプルコードを書く

次に、簡単なサンプルコードを書いていきます。

まず、挿入タブから標準モジュールを選択します。

標準モジュールを挿入する

選択すると、コードを書くエリアが次のように表示されます。

コードを書くエリアの表示イメージ

ここに、サンプルコードを書いていきます。

VBAでマクロを書くときは、「Sub マクロ名」を入力してEnterキーを押し、処理を書くための「空のマクロ」を次のように用意します。

マクロを自動生成するときのイメージ

作成したマクロの中に、以下のような簡単なコードを書いていきます。


Sub 初めてのマクロ()
  Worksheets("Sheet1").Range("A1").Value = "初めてのマクロを実行"
End Sub

今回は、「A1セルに値を書き込む処理」をサンプルで書いています。

手順5:サンプルコードを実行する

ここまで準備ができたら、サンプルコードを実行してみましょう。

作成したマクロにカーソルを当てて、実行タブから「Sub/ユーザフォームの実行」をクリックするだけです。

VBAの実行方法

▲サンプルコード実行後のExcel画面

上記のように、A1セルに「初めてのマクロを実行」が表示されていれば成功です。

【補足】ボタンクリックで動かす方法とは?

VBEから実行はできましたが、VBAを知らないとできないですよね。

VBAを知らない人でも簡単に使えるようにするためには、シートに置いたボタンからクリックできるようにするのがおすすめです。以下でご紹介します。

ⅰ. 開発タブ → 挿入→ボタンをクリック

開発タブ→挿入→ボタンをクリック

ⅱ. セルの範囲を選択してボタンのサイズを指定

ボタンのサイズを指定

ⅲ. さきほど作成したマクロを選択し、OKボタンをクリック

実行するマクロを選択してOKボタンクリック

これで、マクロを実行するボタンの完成です。

A1セルの値クリア後にボタンをクリックすると、A1セルに値が表示されます。

ボタンクリックで処理が動くイメージ

▲ボタンクリックで処理が動くイメージ

作ったマクロをボタン作成時に選択するだけなので、とても簡単ですよね。

VBAを独学で身に着けるための学習方法とは?レベル別に解説!

ここからはレベル別に分けて、VBAを独学で身に着けるための学習方法をレベル別に解説します。

  • レベル1:まずは基礎を学ぼう
  • レベル2:簡単な機能を作ってみよう
  • レベル3:演習問題をこなしてスキルを磨こう
  • レベル4:本格的なツールを作ってみよう
  • レベル5:外部アプリケーションと連携してみよう

レベル1:まずは基礎を学ぼう

未経験からVBAを始めるときは、まず基礎を学びましょう。

具体的には、以下の方法で学んでいくのがおすすめです。

  • VBAの学習サイトを見て学ぶ
  • マクロの記録で細かくコードを出す&調べる

VBAの学習を見て学ぶ

VBAの基礎が学べるサイトはいくつかありますが、おすすめは以下の3つのサイトです。

ドットインストール』は、動画でプログラミングが学べるサービスです。1動画約5分という短時間の学習動画が特徴。一つひとつが短くまとまっているため飽きにくく、初心者におすすめです。

また『パソコンスキルの教科書』、『いつも隣にITのお仕事』は、どちらもIT系のメディアです。テキストベースで学んでいきたい方にうってつけです。

マクロの記録で細かくコードを出す&調べる

プログラミングで大事なのは、わからないことを調べて解決する力です。

とはいえ、「いきなり調べても解決方法がよくわからない……」という方が多いのではないでしょうか。

そんな方におすすめなのが、マクロの記録です。マクロの記録を使えば、Excel操作を「自動でVBAに変換」できます。

たとえば、「セルに罫線を引く操作」をVBAで書く方法がわからないときは、以下のように操作するだけでVBAのコードが作れます。

ⅰ. 開発タブからマクロの記録を選択

マクロの記録を選択

ⅱ. マクロ名を決めてOKボタンをクリック

マクロ名を決めてOKボタンをクリック

ⅲ. 罫線を引く操作を実行

罫線を引く操作を実行

ⅳ. 開発タブから記録終了を選択

記録終了を選択

これで操作をVBAで保存できました。

次に、以下の手順でマクロの中身を見ていきます。

ⅰ. 開発タブからマクロを選択

開発タブから「マクロ」を選択

ⅱ. 記録したマクロを選択し編集ボタンをクリック

記録したマクロを選択し編集ボタンをクリック

編集をクリックすると、VBAのコードが以下のように表示されます。

自動生成されたVBAのプログラム

▲自動生成されたVBAのプログラム

罫線を引くマクロを自動で作ると、上記のようなVBAが自動生成されます。

上記のプログラムを見れば、「Selection.Borders(〇〇〇〇〇)」で罫線を引く設定ができることが分かります。

「格子ではなく別の罫線を引きたい」という場合は、以下のように「Selection.Borders」の使い方をGoogleで調べましょう。

Googleで検索する時のイメージ

▲Googleで検索する時のイメージ

マクロの記録でプログラムを自動生成しつつ、使い方を検索する癖をつけるとプログラミングの習得が早くなります。

レベル2:簡単な機能を作ってみよう

ある程度VBAの基礎が書けるようになったら、簡単な機能を作ってみましょう。

たとえば、日々のExcel操作を箇条書きにしてみてください。

書き出しが終わったら、自動化すると工数削減につながりそうな業務を手短にするVBAを作ってみましょう。

具体的な作り方は、以下がおすすめです。

  • コメントでどんな処理を作るか書く
  • コメントに書いてある処理をひとつずつVBAで書いていく

たとえば、特定のデータを絞り込み、グラフを作成してレポート出力する処理の場合は、以下のようにコメントを書きます。

Sub レポート出力()

'①一覧データからデータを絞り込む

'②絞り込んだデータをグラフ作成用のシートにコピペする

'③コピペしたデータを使いグラフを作成する

'④グラフをレポート用のシートにコピペする

'⑤レポート用のシートをPDFで保存する

End Sub

先にコメントを書き、ひとつずつ処理を調べて作っていきます。

書き方を調べるときは、レベル1で覚えたマクロの記録を活用するとよいでしょう。

レベル3:演習問題をこなしてスキルを磨こう

手短な処理を自分で作れるようになったら、演習問題を解いていくのがおすすめです。今まで学んできたスキルで足りない基礎知識を補っていきましょう。

演習問題は、『エクセルの神髄』のマクロVBA練習問題がおすすめです。練習問題用のExcelファイルも配布されており、全ての問題に解答用のVBAコードが載っています。

腕試しにもなるので、ぜひ挑戦してみてください。

レベル4:本格的なツールを作ってみよう

演習問題を難なくこなせるようになったら、本格的なツールを作ってみましょう。

レベル2で考えた日々のちょっとした操作ではなく、「Excelの業務自体を無くせないか?」という視点で、業務効率化ツールを作ってみるのがおすすめです。

ただしいきなり作るのではなく、以下のように考えてから作ってみましょう。

  • どんな業務を無くせば効率化できるか?
  • 現実的に、何を無くせそうか?
  • 業務を無くすために、どんな機能が必要か?

ここまで作れると、社内でもVBAマスターとして認知され始めるころですね。

レベル5:外部アプリケーションと連携してみよう

Excel単体で本格的なツールが作れるようになったら、外部アプリケーションと連携したツールを作ってみましょう。
たとえば、以下のようなツールです。

  • Excelの一覧データからOutlookを利用して、メールを一括送信するツール
  • Webからデータを自動収集し、レポートを作成するツール

Excel以外のOfficeを始めとする、他のアプリケーションを操作できれば、どんなアプリでも作れるようになるでしょう。

VBAを独学で習得するコツとは?

最後に、VBAを独学で習得するコツについて解説します。コツは、大きく以下の2つです。

  • 独学するコツ1:困った時に相談できる環境を用意しておく
  • 独学するコツ2:エラーの原因を調べる

それぞれ詳しく解説します。

独学するコツ1:困った時に相談できる環境を用意しておく

VBAは敷居が低くて始めやすいとはいえ、プログラミング言語です。そのため慣れないうちは調べても解決できないことが多いでしょう。

「1日中調べても解決できない……」という状態が続くと、モチベーションも下がってしまいますよね。

そんなときのために、以下のような環境を用意しておきましょう。

  • MENTAなどでメンターを探しておく
  • teratailのような質問できるサービスを利用する
  • プログラミングスクールに入会する

プログラミングスクールや『MENTA』は有料ですが、その分質問が返ってきやすいです。

teratail』のような質問サービスを利用しつつ独学してみて、思うように進められない場合はMENTAでメンターを利用するのがおすすめです。

独学するコツ2:意図した結果にならない時の原因を調べる

プログラミングを学ぶときは、エラーの原因がわからず手が止まってしまう人が多くいます。

また「処理は成功したのに、意図した結果にならない……」となると、お手上げになってしまう人もいます。

上手くいかない原因を調べるために、1行ずつコードを追っていく方法を覚えましょう。具体的には、「Stop + イミディエイトウィンドウで変数の値を確認する方法」を覚えておくと良いでしょう。

VBAのコードに「Stop」を書くと、Stopを書いた場所で処理が止まります。止めたときに、イミディエイトウィンドウで「?変数名」を入れてEnterキーを押すと、以下のように値を確認できます。

Stopで止めてから値を確認するときの例

▲Stopで止めてから値を確認するときの例

上記の例の場合は、変数intNum2に111を入れるつもりが、誤って11.1を入れてしまっています。

Stopは何個でも設置できるので、確認したいタイミングで設定すればOKです。

まとめ

今回は、VBAの概要やマクロとの違い、VBAでできることを7個紹介しました。

ちょっとした作業をVBAで自動化するだけで、楽になるものはたくさんあります。簡単なマクロからでいいので、ぜひ作ってみてくださいね。

こちらもおすすめ!▼

SHARE

  • 広告主募集
  • ライター・編集者募集
  • WorkshipSPACE
エンジニア副業案件
Workship