Excel上級者

[保存版]Excel2013 VBAを徹底解説!

しんたろ。
この記事でわかること
  • ExcelVBAの使い方の手順がわかる
  • ExcelVBAの学習方法がわかる
  • ExcelVBAのよくあるトラブルの解決策がわかる

 Excelで作業の効率化を図るために、ExcelVBAを学ぼうと思う人は多く良くいます。PCにExcelさえダウンロードされていれば、すぐに始めることができるため、Excel作業を手早く効率化するための最善の方法だからです。

ちょっとした作業から、凝った作業までツールを作れば作業そのものをなくすこともできます。

 ただ、VBAの入門本はとても分厚く、学ぼうと思ってから業務を効率化させるまでに時間がかかる人が多いです。

現に、私は独学で1年ほど大きく回り道をしながら学んでいました。泣

 この記事では、これからVBAでExcel作業の効率化を目指す方向けに、マクロとVBAの違い、VBAを作る具体的な手順、実行方法など、実際に手を動かすだけですぐにVBAが始められる手順を解説します。

非常に多いボリュームとなっているため、目次から確認したい項目をクリックしてください。

この記事の目次
  1. ExcelVBAのメリットとデメリット
  2. エクセルVBAの手順とは?
  3. ExcelVBAのよくある疑問やQ&A
  4. まとめ
  5. Contact

ExcelVBAのメリットとデメリット

  1. 簡単にシステム開発できる
  2. 開発コストも運用コストも安い
  3. 誰が作業しても、同じ成果物を作ることができ作業者の負担を軽減
  4. 作業工数の大幅な短縮
  5. さまざまなシステムと連携が可能
  1. Excelのバージョンが変わった際に利用できなくなる
  2. 複数人での同時編集がおこないにくい
  3. 複雑な処理に対しての処理速度が遅い

エクセルVBAの手順とは?

  1. 自動化したい処理を見定める
  2. 簡単で良いので設計をする
  3. VBAのコードを実際に作る
  4. 実行をして、完成まで仕上げる

 普段のExcel業務を一覧化し、自動化して楽になる作業がないかを見極めていきます。

細かい中身は違えど、ルーティン作業は自動化が行いやすいです。処理が決まれば、具体的な開発に移ります。

 実際にVBAを作る際は、簡単に設計をおこなうことをオススメしています。設計のやり方を詳しく解説していきます。

VBAを作る前に簡単に設計をしよう

 自動化する処理が決まっていたとしても、いきなりコード作成に移るのは危険です。詳細を決めていないため、どのくらいの工数を要して作成すれば良いのかわからず、予定が立てられません。

 まずは作成前に簡単に設計をしましょう。

  • ツールに必要な機能を一覧化
  • 作るツールのイメージを考える
  • 具体的な操作や処理の流れを考える

 たとえば、請求書自動作成ツールを作りたいと思った場合、次のように具現化していきましょう。

◇機能の一覧

  • 請求書の新規登録機能
  • 請求書データのインポート
  • 請求書PDF出力機能
  • 請求書出力管理機能
請求書イメージ

◇請求書新規機能登録機能の処理詳細

  1. 入力したデータを取得
  2. 入力チェック:必須項目のチェック
  3. 入力チェック:文字列・日付・金額などの入力の型チェック
  4. Excelの一覧データにデータの書き込み
  5. 登録完了メッセージを表示

 ここでは、「請求書自動出力ツールの新規登録処理」について、画面イメージ・処理詳細を設計しています。

このように、「具体的に何を作るのか・どんな処理を作っていくのか」を決める作業が設計です。

 設計ができたら、コーディングに移ります。ここからは、VBAの作り方・実行方法について解説していきます。

VBAのコードを書いて実行する方法
エクセルマクロの作り方

 それでは実際にVBAのコードを書いて実行する方法を解説します。手順は以下のとおりです。

①開発タブ→VisualBasicを選択して、VBEを起動する。

②右クリック→挿入→標準モジュールを選択して標準モジュールを作成

ExcelVBA 標準モジュール

③「Sub マクロ名」を入力してEnterキーをクリック

Sub マクロ名End Sub

④「Sub マクロ名」〜「End Sub」に処理を書く

サンプルコードExcelVBA

:サンプルコード

Sub マクロ名()
  Worksheets("Sheet1").Range("A1").Value = "初めて書いたVBAコード"
End Sub

⑤実行タブ→「Sub/ユーザーフォームの実行」をクリック

Sub/ユーザーフォーム実行

⑥実行結果を確認

VBAを書いて実行する方法はここまでです。

思ったより簡単にできますので、まずは触って覚えていきましょう。

実際にコードを書く際に「変数」というものを使いますが、変数はコードには欠かせない存在です。詳しく解説したの記事がありますので、こちらも併せてご確認ください。

>>変数宣言Dimを3分で徹底解説!ExcelVBAを知る始めの一歩

しんたろ。

実際に実務で使用していくには、知識がないとできません。オススメの勉強方法を紹介します。

VBAを習得するためには何から始めるべき?

ExcelVBAの学習方法は?

  • じっくり勉強をするなら「本」
  • 手軽に勉強するなら「学習サイト」
  • スキマ時間に勉強するなら「動画学習」
  • 資格をアピールするなら「VBAの資格」

 仕事や普段の生活スタイル・目的にあった勉強方法を選ぶことが、効率よく勉強できる一歩となります。



Youtube


学習サイト


オンライン学習
金額1,000円〜3,000円無料基本無料1,600円〜数万円
習得期間1年〜2年3ヶ月〜6ヶ月3ヶ月〜6ヶ月半月〜1ヶ月
備考疑問点の解決が難しい実際に動くところを視聴できる利点あり課題を解きながら体系的に学べる疑問点や自分のしたいことを講師が教えてくれる。
オススメ度
見出しジャンプ詳細を見る詳細を見る詳細を見る詳細を見る

VBA学習のメリットは?

VBAは仕事を効率化したい人におすすめ

VBAは、普段仕事でMicrosoft Officeを使用する方におすすめのプログラミング言語です。 VBAの知識を身につけることで、毎日の仕事を効率化でき、生産性を高められます。 作業を自動化できたら、煩雑で面倒な作業から解放されるでしょう。

しんたろ。
しんたろ。

ぜひ、この記事を参考にVBA学習進めてみてくださいね。

VBA学習にオススメの本2冊

・じっくり勉強をするなら『』がオススメ
  • 数千円で豊富な情報がわかる
  • 本のテーマに沿った内容を詳しく学べる
  • 他のVBA知識を体系的に学べる
  • 手元においてリファレンス代わりに使える
  • 疑問点が浮かんだ時に、行き詰まる可能性がある
できる イラストで学ぶ
入社1年目からのExcel VBA

 「1冊目」として大変優れている本です。これだけでVBAを理解できるほどではありませんが、全く知識ゼロから初級クラスになれます。

VBAコードレシピ集

 初級クラスになったあとにオススメの本です。さまざまな事例を元にコードが記載されており、まさに「レシピ集」です。私も愛用している一冊です。

VBA学習にオススメの動画2選

・スキマ時間に勉強するなら『動画』がオススメ
  • YouTubeにExcelの操作方法や、VBAの基礎知識を紹介した動画が公開されているので、無料でVBAの基礎を学ぶことができる
  • 本と同じで、疑問点がある時に行き詰まる可能性がある
【無料】YouTubeでオススメ1つ目
「Excel VBA入門」

 VBAの基礎からVBAの書き方までを解説する動画シリーズです。動画時間は2分〜10分とテーマごとに細かく分けられているため、自分に合った学びたい内容を集中して視聴することができます。

VBAの基礎からVBAの書き方までを解説する動画シリーズです。動画時間は2分〜10分とテーマごとに細かく分けられているため、自分に合った学びたい内容を集中して視聴することができます。

【無料】YouTubeでオススメ2つ目
「ExcelVBA・マクロ・初心者入門講座」

この動画1本見れば「VBAの概要から実際にプログラミングを書いて実行するまでを解説する動画」です。1時間40分と長い動画ですが、動画の概要欄の目次から学びたい内容にすぐ再生できるので、復習しやすいです。
とてもオススメの動画です。

VBA学習にオススメのサイト3選

・スキマ時間に勉強するなら『学習サイト』がオススメ
  • VBAの解説を見ながらVBAのコードを実行できる
  • 辞書のようにやりたいことを逆引きで探せる
  • 本と同じで、疑問点がある時に行き詰まる可能性がある
Excelマクロ・VBA塾

 VBAの基礎の基礎から、わかりやすく解説しているため、知識ゼロでも問題ありません。VBAに関して本当に自信がない人に、ぜひオススメしたいサイトです。

moug(モーグ)
引用元:moug

 mougはVBAに限らずWordやAccessなども学べる学習サイトです。VBAの勉強ができる「VBA広場」にある「Excel VBA ビギナーズ」で基礎を学べます。

サンプルデータをダウンロードできるため、サンプルを動かして勉強を進めたい方にオススメです。

ドットインストール

 「プログラミングと言えばドットインストール」というくらい有名なサイトです。1話3分前後の動画でプログラミングを学んでいけるので、空き時間などに取り組みやすい点が特徴です。

ただし一部のコンテンツのみ無料です。有料コンテンツは月額1,080円になります。ただ、1,080円だけで全ての講義を受けられます。破格の値段です。

VBA学習にオススメのオンライン講座

・最短で習得したいなら『オンライン講座』がオススメ
  • 必要なコンテンツが難易度順に整理され、完成されたパッケージになっている
  • サポート体制が整っている
  • 動画ベースで、視覚的に操作を見ながら学習できる
  • ネット環境があればどこでも勉強できる
  • プロダクトによっては、一定期間内に集中的に学習しなければならない
Excel講座【すごい改善】

 累計40万部のベストセラー『たった1日で即戦力になるExcelの教科書』著者の吉田拳が講師を務める、 1日完結・実務直結・超実践型のExcelセミナーです。

 受講料約50,000円という高額にも関わらず、 2010年の開講依頼、毎週続け11年間で400回開催、4000名が参加。

 受講者は受講後も無期限でExcelの実務上の質問や相談ができる 「無期限サポート」を無償で利用できるアフターサポートが好評。

 いつでもどこでも何度でも視聴できるオンライン版も用意。 経済産業省でも採用されているExcel講座です。

一日でExcelを覚えて定時で帰りたい方はコチラ

 また、別記事にオススメのオンライン講座5選をまとめてる記事がありますので、他のオンライン講座を見てみたいという方は下記ご参照ください。

>>2022年度版オンライン講座ランキング5を見る

ExcelVBAのよくある疑問やQ&A

 ここからはVBAの素朴な疑問や、知っておきたいよくある質問を各見出しごとに紹介しています。一度目を通しておくことをオススメします。

Q:エクセルVBAの機能は?どんな時に使うか
A:ルーティン作業を自動化する

  • Excelデータの計算・並べ替え・書式の変更
  • 定型ファイルの作成
  • サーバーログを利用したログ解析
  • サイトクロージング
  • UI(ユーザーインターフェース)の作成
  • MS Officeアプリケーション同士の連携

Q:VBAの必要性は?
A:Microsoft製品で仕事をしている人は是非自動化を

 結論からいうと、Microsoft製品の業務を自動化できるVBAの必要性は非常にあります。

VBAができる人はとても重宝されますし、改善意欲も高く企業に評価されやすいです。

VBAを業務に活用すると、データ入力や計算、整理などの定型業務を自動化できますので、効率化ができます。

 またCSVなどの外部データをExcelに取り込むことも可能で、データの抽出やグラフ作成なども簡単に操作できるようなり、データベースの運用も非常に円滑に行えます。

次に、VBAを理解するためには、「マクロ」というものから考えると理解がしやすいので、まずは「マクロ」の解説をします。

Q:そもそもマクロってなに?マクロは何が便利?
A:「記録」を繰り返し自動化する仕組み化ができる

 マクロとは録音をイメージしてもらえると良いです。スマホで録音ボタンを押して音声を録音しておけば、再生ボタンを押すといつでもその音声を聞くことができますよね?

マクロとはまさにこの録音機能のようなものです。ExcelVBAの場合は、音声ではなくデータなので、「記録」といった方がいいですね。

そもそもExcelでなにを記録するのかというと、「Excel上で行った操作」です。そうして「記録された操作」は何度でも繰り返し使えるようになります。

 マクロを活用することで、ある条件でソートをかける、決められた書式設定に変更するなど、日々繰り返すようなExcelでのルーティン作業を自動化でき、仕事の効率化につながります。

Q:VBA言語の特徴は?
A:Microsoft製品を自動化できる

 VBA【 Visual Basic for Applications 】 とは、Microsoft Officeに含まれるアプリケーションソフトの拡張機能で、利用者が簡易なプログラムを記述して実行することで複雑な処理の自動化などを行なうことができるもの。 また、そのために用意されたプログラミング言語。

引用元:IT用語辞典 e-Words

 少しわかりにくいですが、要するに「Microsoft officeのExcelやWordなんかで使用できる便利機能みたいなもの」です。 

Q:ExcelVBAはどこまでできる?
A:プログラミングでできること6選を紹介

VBA 改善前のイメージ
VBA 改善後のイメージ

 VBAでは大まかにわけて次の6つの作業が自動化できます。順に詳しく紹介します。

  • 転記作業の自動化
  • レポート作成の自動化
  • Office連携作業の自動化
  • メールの一括送信
  • データベースをメンテナンスするシステム
①転記作業の自動化

 Excelの作業で、「ブックAのデータから必要な情報だけ調べて、ブックBに転記する」という作業をしたことがある方もいるのではないでしょうか。

簡単な例だと日報を週報としてまとめるケースや、データ入力した日次データを月に一回まとめる作業などです。

データを取得するルールを決めれば、これらの業務はVBAで自動化することができます。

月次処理でデータを整理する場合でも、手動でデータ整理するのではなく、VBAで自動作成されたデータをチェックするだけで済むようになります

②レポート作成の自動化

 請求書、見積書、納品書などをExcelのデータから作っている場合や、Excelのデータ一覧から作成したグラフをもとに、PDFでレポートを作成するケースはよくありますよね。作成する手順が決まっていれば、そこまで時間はかからないかもしれません。

ただ、膨大な数になってくると話は別です。

経理書類の請求書などは、月末が近づくにつれて多くなってきたりもしますよね。会社の規模にもよりますが、数百件作ることもザラかもしれません。

作業をしているうちに、どこまで作業が終わっているのか、どこまで入力が終わっていてチェックが終わっていない書類はどれかわからなくなってしまい、作業効率が落ちたり、ミスしてしまう人もいるのではないでしょうか。

VBAでレポートを自動作成するツールを作っていれば、これらの業務をチェックだけで済ませることができます。

③Office連携作業の自動化

 OutlookやPowerPoint、WordとExcelを連携することができます。Excelの顧客一覧を見ながらメールで連絡したり、Excelのデータ・グラフをPowerPointやWordの資料に使うケースはよくありますよね。

これらの作業は、全て自動化することができます。

複数の作業のうちの1作業かもしれませんが、忙しくなってくると少しでも時間を浮かせたいと思います。

ちょっとした事務作業を効率化することで、塵も積もれば多くの時間を浮かせることができます。

④請求書の作成を自動化

 よくExcelなどのOfficeソフトを使って請求書を制作することがありますが、その入力を毎回するのは結構面倒な作業ですよね。そんな悩みもVBAで簡単に自動化できます。

請求書の各入力項目に記載する内容を読み込ませるだけで、後はテンプレートに沿って自動で作成できます。

⑤メールの一括送信

 毎日の事務作業の中にはメール対応が必須ですよね。VBAでは、Outlookと連携した自動化処理が作れますので、それを利用することでメールを一括送信するツールも作ることが可能です。

特に営業の方にとっては業務が一気に楽になります。その上、普段使っているExcelをコントローラとして利用できるため、使い方も簡単で導入するのもお手軽にできますね。

⑥データベースをメンテナンスするシステム

 「メンテナンス」とはつまり、Excelワークシート上でデータベースの読み書きできるプログラムのことを指します。

データベース管理ツールの使い方やSQLの文法がわからなくても、Excel上から更新が行えるという便利なプログラムです。

MySQL、SQLServer、Oracle、Microsoft Accessといったさまざまなデータベースに接続することができ、複数人でサーバーの運用保守を行うとき等にとても便利です。

Q:VBAでIE(Internet explorer)はいつまで使える?
A:2022年6月でサポート終了

 IE11サポート終了によるブラウザ切り替え対応は済んでいますか?

もう過ぎましたが、2022年6月のIE11サポート終了以降、これまで利用してきたVBAの一分機能が使えなくなります。

このことについて、簡単に解説と対処法を解説します。

CreateObject(“InternetExplorer.Application”)が使えないだけ

 ブラウザを変更すればユーザーは問題ありませんが、IE11でコードを書いていた場合はExcel VBAのIEオートメーション操作、ShellWindowsからのブラウザ操作や動作しなくなります。

公式参考:IEのサポートが2022年6月15日に終了とのことですがVBAの対応方法は?

対処方法:Power Automate Desktopを使用するとお手軽

Power Automate Desktopを使用し、ブラウザ操作の自動化

 Windows 10以降に搭載されたクライアントコンピュータ自動化のためのRPAツールが「Power Automate Desktop」、通称【PAD】です。

 キーボード操作やマウス操作を記録することができ、ブラウザの内容を読み取ってExcelや自社アプリに対して自動的にデータを保存することもできます。

for文のように、保存したデータを使って繰り返し登録処理を行うなど応用範囲の広い使い方をすることができます。

簡単にPADにできること7選を紹介されている分かりやすいYoutube動画がありましたの、ご参照ください。

引用元

Q:VBAとRPAはどっちを使うほうが良い?
A:Microsoft製品で完結するなら「VBA」

 VBAとRPAはどちらとも作業を自動化させることができるツールです。

それぞれの特徴と違いを解説していきます。

RPAが得意な自動化作業

  • ルールが決まっている作業
  • 複数のアプリケーションを跨いでおこなうような業務
  • データを別のシステムに移動させる転記作業
  • メールの送信作業
  • 顧客情報の入力や照会、問い合わせ件数の集計などの作業

・VBAが得意な自動化作業

  • Microsoft製品だけで完結する作業
  • Excelで集計しているメールアドレスにOutlookから自動的にメールを送信など

VBAとRPAの特徴を比較

 職場の自動化ツールを導入したい時の参考にRPAとVBAをの違いについて、もう少し詳しく見ていきます。

VBARPA
自動化できる範囲Officeアプリケーション内のみPC内全ての操作
データの処理能力ひとつのパソコン上で動作をさせるため、パソコンの性能に依存する。
大量のデータ処理は向いていない。
クラウド上で動かせる。
高速で大量のデータ処理が可能
連携できるシステムの種類Microsoft製品他のソフトウェアやシステムとの連携が可能
必要なプログラミングスキルプログラミング言語の知識が必要プログラミングスキルが不要
システムのわかりやすさ独人化してしまうため、限定的な導入が現実的実際に自動化対応をした人以外でもわかりやすい
サポート面サポート体制なし・ヘルプデスク
・シナリオの作成支援や作成、代行をしてくれる事業者もいる
セキュリティ面Microsoft製品のため、セキュリティは同社の更新プログラムに依存不正アクセスなど外部からの脅威が考えられるため、セキュリティの高い製品を選ぶ必要有り
導入コストOffice製品のライセンス料が必要。
外注化すると+で費用がかかる
外注費:数万円〜100万円程度
どのくらいの規模で、どのような自動化をするかで大きく変わる
・30万円〜数千万円程度

どちらを導入すべきかを決めるポイント

どんなポイントに注意して選定を進めればよいか、検討すべきポイントを整理します。

VBARPA
運用管理のしやすさスキルを持つ人材がいないと難しい運用支援のサポートを
受けられるので容易
対象の改善が
Microsoft社の提供するアプリだけで完結するか
Microsoft社の
Office系での自動化処理が
中心のため、有利
対応可能だが、Microsoft社のみだとコスト的にVBAをが有利
自動化できる業務量がどれくらいかパソコンに依存するため、大量のデータ処理は不向きサーバーやクラウド上での処理を想定しているなら有利
自動化するためのコスト新たな環境を整備する必要がないので低コスト小規模な自動化に対して行う場合は
高コスト
システム障害に対応できるか専任スタッフに負担大カスタマーサポートでの対応可能
しんたろ。

Microsoft製品をメインで使用している場合は「VBA」、それ以外は「RPA」がオススメ!

VBAとRPAを組み合わせることも1つの方法

 業務によっては、RPAとVBAを組み合わせて使う方法もあります。

たとえば、Excel内の自動化にはVBAを使用して効率化し、外部のツールや媒体と連動させて自動化する際には、RPAツールを使用する。

組み合わせることによって、より自動化を効率的に進めることが可能です。

 またRPAでの自動化に慣れてきたら、スキルアップのためにVBAを学んでみるのも良いかもしれません。より柔軟な自動化や運営の方法が模索できる可能性があります。

しんたろ。

状況に応じてVBAとRPAを組合わせて使用すると効率化UP

Q:そもそもVBAはなんて読む?
A:「ヴイビーエー」

  • Visual
  • Basic
  • Application
しんたろ。

イニシャルを合わせて「VBA(ヴイビーエー)」と呼びます。

Q:VBAの言語ベースは?
A:MicrosoftのVisual Basic

 Microsoftのアプリケーション独自のマクロ言語用に作られたプログラミング言語で、VBAは「MicrosoftのVisual Basic」をベースとしており、WordやExcelをはじめとするMicrosoft Officeのアプリケーション群に搭載されています。

まとめ

振り返り

・ExcelVBAの使い方の手順がわかる
・ExcelVBAの学習方法がわかる
・ExcelVBAのよくあるトラブルの解決策がわかる

全会社員を残業地獄から救いたい
本ブログの有効活用方法
1
Concept
初心者に分かりやすい解説

しんたろ。ブログでは「少しでも残業を減らしたい」「時間効率を上げて新しいことにチャレンジしたい」「仕事で評価を上げて年収を上げたい」そんなあなたに向けて私が学んできたノウハウを最短ルートで教えるExcelブログとなっています。

覚えておくべき関数や操作方法を徹底解説!

2
Concept
Excelを最短で
習得する方法を解説

「独学で習得できる気がしない」そんな方に効率よく習得できる記事を書きました。

本や動画を紹介していますが、やはり一番効率の良い習得方法は、講師にわからないことを質問できる『オンラインスクール』です。

3
Concept
Excelが大活躍!
会社員でも不就労所得を作れる。

「会社の収入だけでは不安」そう思い出会った副業がブログでした。書いた記事たちが、あなたが寝ている間もずっと働いてくれます。『不就労』の完成です。

記事を書く際の様々な分析にExcelがとても役立ちます。私は2023年末までにブログで脱サラする予定です!

あなたもブログで脱サラしましょう。

お問い合わせ

Contact

問い合わせより直接相談していたくと
無料で相談にのりますよ♪

お気軽にご相談ください♪

今日はこのへんで。では


ABOUT ME
しんたろ。
しんたろ。
脱サラ目指す会社員
デスクワークに追われ、仕事が極端に遅かった私がExcelを学んだら会社から評価され残業も大幅削減を実現!早期FIREするための副業もしています。 あなたの人生も好転させたい!ぜひ本ブログをご活用ください。
記事URLをコピーしました