【保存版】Excel2013 VBAを徹底解説!
- ExcelVBAの使い方の手順がわかる
- ExcelVBAの学習方法がわかる
- ExcelVBAのよくあるトラブルの解決策がわかる
Excelで作業の効率化を図るために、ExcelVBAを学ぼうと思う人は多く良くいます。PCにExcelさえダウンロードされていれば、すぐに始めることができるため、Excel作業を手早く効率化するための最善の方法だからです。
ちょっとした作業から、凝った作業までツールを作れば作業そのものをなくすこともできます。
ただ、VBAの入門本はとても分厚く、学ぼうと思ってから業務を効率化させるまでに時間がかかる人が多いです。
現に、私は独学で1年ほど大きく回り道をしながら学んでいました。泣
この記事では、これからVBAでExcel作業の効率化を目指す方向けに、マクロとVBAの違い、VBAを作る具体的な手順、実行方法など、実際に手を動かすだけですぐにVBAが始められる手順を解説します。
非常に多いボリュームとなっているため、目次から確認したい項目をクリックしてください。
LINEでExcelを気軽に学べる
□2016年
海外拠点において、Excelでの業務改善による納期遵守率50%→100%達成。
□2018年
自動化を促進させ、自身の残業時間を年間240時間削減成功。
□2023年
├ブログとTwitter開始
├Excel無料相談会→即日満席
└ChatGPT×Googleスプレットシート配布で1週間で35万インプ達成
仕事ができなくて毎日上司に叱責されていた私がExcelを学んだら評価され残業を大幅に削減!現在は職場改善チームに所属し、PythonやRPAなどのツールで会社全体の改善をしています。仕事の依頼はTwitterのDMまで!
ExcelVBAのメリットとデメリット
エクセルVBAの手順とは?
普段のExcel業務を一覧化し、自動化して楽になる作業がないかを見極めていきます。
細かい中身は違えど、ルーティン作業は自動化が行いやすいです。処理が決まれば、具体的な開発に移ります。
実際にVBAを作る際は、簡単に設計をおこなうことをオススメしています。設計のやり方を詳しく解説していきます。
VBAを作る前に簡単に設計をしよう
自動化する処理が決まっていたとしても、いきなりコード作成に移るのは危険です。詳細を決めていないため、どのくらいの工数を要して作成すれば良いのかわからず、予定が立てられません。
まずは作成前に簡単に設計をしましょう。
たとえば、請求書自動作成ツールを作りたいと思った場合、次のように具現化していきましょう。
◇機能の一覧
- 請求書の新規登録機能
- 請求書データのインポート
- 請求書PDF出力機能
- 請求書出力管理機能
◇請求書新規機能登録機能の処理詳細
- 入力したデータを取得
- 入力チェック:必須項目のチェック
- 入力チェック:文字列・日付・金額などの入力の型チェック
- Excelの一覧データにデータの書き込み
- 登録完了メッセージを表示
ここでは、「請求書自動出力ツールの新規登録処理」について、画面イメージ・処理詳細を設計しています。
このように、「具体的に何を作るのか・どんな処理を作っていくのか」を決める作業が設計です。
設計ができたら、コーディングに移ります。ここからは、VBAの作り方・実行方法について解説していきます。
VBAのコードを書いて実行する方法
エクセルマクロの作り方
それでは実際にVBAのコードを書いて実行する方法を解説します。手順は以下のとおりです。
①開発タブ→VisualBasicを選択して、VBEを起動する。
②右クリック→挿入→標準モジュールを選択して標準モジュールを作成
③「Sub マクロ名」を入力してEnterキーをクリック
④「Sub マクロ名」〜「End Sub」に処理を書く
:サンプルコード
Sub myFirstVBA()
Range("A1").Value = "初めて書いたVBAコード"
End Sub
⑤実行タブ→「Sub/ユーザーフォームの実行」をクリック
⑥実行結果を確認
VBAを書いて実行する方法はここまでです。
思ったより簡単にできますので、まずは触って覚えていきましょう。
実際にコードを書く際に「変数」というものを使いますが、変数はコードには欠かせない存在です。詳しく解説したの記事がありますので、こちらも併せてご確認ください。
>>変数宣言Dimを3分で徹底解説!ExcelVBAを知る始めの一歩
VBAを習得するためには何から始めるべき?
ExcelVBAの学習方法は?
仕事や普段の生活スタイル・目的にあった勉強方法を選ぶことが、効率よく勉強できる一歩となります。
本 | Youtube | 学習サイト | オンライン学習 | |
金額 | 1,000円〜3,000円 | 無料 | 基本無料 | 1,600円〜数万円 |
習得期間 | 1年〜2年 | 3ヶ月〜6ヶ月 | 3ヶ月〜6ヶ月 | 半月〜1ヶ月 |
備考 | 疑問点の解決が難しい | 実際に動くところを視聴できる利点あり | 課題を解きながら体系的に学べる | 疑問点や自分のしたいことを講師が教えてくれる。 |
オススメ度 | ||||
見出しジャンプ | 詳細を見る | 詳細を見る | 詳細を見る | 詳細を見る |
VBA学習のメリットは?
VBAは仕事を効率化したい人におすすめ
VBAは、普段仕事でMicrosoft Officeを使用する方におすすめのプログラミング言語です。 VBAの知識を身につけることで、毎日の仕事を効率化でき、生産性を高められます。 作業を自動化できたら、煩雑で面倒な作業から解放されるでしょう。
ぜひ、この記事を参考にVBA学習進めてみてくださいね。
VBA学習にオススメの本2冊
・じっくり勉強をするなら『本』がオススメ
できる イラストで学ぶ
入社1年目からのExcel VBA
「1冊目」として大変優れている本です。これだけでVBAを理解できるほどではありませんが、全く知識ゼロから初級クラスになれます。
VBAコードレシピ集
初級クラスになったあとにオススメの本です。さまざまな事例を元にコードが記載されており、まさに「レシピ集」です。私も愛用している一冊です。
VBA学習にオススメの動画2選
・スキマ時間に勉強するなら『動画』がオススメ
【無料】YouTubeでオススメ1つ目
「Excel VBA入門」
VBAの基礎からVBAの書き方までを解説する動画シリーズです。動画時間は2分〜10分とテーマごとに細かく分けられているため、自分に合った学びたい内容を集中して視聴することができます。
VBAの基礎からVBAの書き方までを解説する動画シリーズです。動画時間は2分〜10分とテーマごとに細かく分けられているため、自分に合った学びたい内容を集中して視聴することができます。
【無料】YouTubeでオススメ2つ目
「ExcelVBA・マクロ・初心者入門講座」
この動画1本見れば「VBAの概要から実際にプログラミングを書いて実行するまでを解説する動画」です。1時間40分と長い動画ですが、動画の概要欄の目次から学びたい内容にすぐ再生できるので、復習しやすいです。
とてもオススメの動画です。
VBA学習にオススメのサイト3選
・スキマ時間に勉強するなら『学習サイト』がオススメ
Excelマクロ・VBA塾
VBAの基礎の基礎から、わかりやすく解説しているため、知識ゼロでも問題ありません。VBAに関して本当に自信がない人に、ぜひオススメしたいサイトです。
moug(モーグ)
mougはVBAに限らずWordやAccessなども学べる学習サイトです。VBAの勉強ができる「VBA広場」にある「Excel VBA ビギナーズ」で基礎を学べます。
サンプルデータをダウンロードできるため、サンプルを動かして勉強を進めたい方にオススメです。
ドットインストール
「プログラミングと言えばドットインストール」というくらい有名なサイトです。1話3分前後の動画でプログラミングを学んでいけるので、空き時間などに取り組みやすい点が特徴です。
ただし一部のコンテンツのみ無料です。有料コンテンツは月額1,080円になります。ただ、1,080円だけで全ての講義を受けられます。破格の値段です。
VBA学習にオススメのオンライン講座
・最短で習得したいなら『オンライン講座』がオススメ
別記事にオススメのオンライン講座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では大まかにわけて次の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動画がありましたの、ご参照ください。
- データ集約
- Webからデータの抽出
- Webシステムへ値入力
- デスクトップアプリ
- ファイル移動
- メール一斉送信
- 受信メール一覧取得
Q:VBAとRPAはどっちを使うほうが良い?
A:Microsoft製品で完結するなら「VBA」
VBAとRPAはどちらとも作業を自動化させることができるツールです。
それぞれの特徴と違いを解説していきます。
RPAが得意な自動化作業
- ルールが決まっている作業
- 複数のアプリケーションを跨いでおこなうような業務
- データを別のシステムに移動させる転記作業
- メールの送信作業
- 顧客情報の入力や照会、問い合わせ件数の集計などの作業
・VBAが得意な自動化作業
- Microsoft製品だけで完結する作業
- Excelで集計しているメールアドレスにOutlookから自動的にメールを送信など
VBAとRPAの特徴を比較
職場の自動化ツールを導入したい時の参考にRPAとVBAをの違いについて、もう少し詳しく見ていきます。
VBA | RPA | |
自動化できる範囲 | Officeアプリケーション内のみ | PC内全ての操作 |
データの処理能力 | ひとつのパソコン上で動作をさせるため、パソコンの性能に依存する。 大量のデータ処理は向いていない。 | クラウド上で動かせる。 高速で大量のデータ処理が可能 |
連携できるシステムの種類 | Microsoft製品 | 他のソフトウェアやシステムとの連携が可能 |
必要なプログラミングスキル | プログラミング言語の知識が必要 | プログラミングスキルが不要 |
システムのわかりやすさ | 独人化してしまうため、限定的な導入が現実的 | 実際に自動化対応をした人以外でもわかりやすい |
サポート面 | サポート体制なし | ・ヘルプデスク ・シナリオの作成支援や作成、代行をしてくれる事業者もいる |
セキュリティ面 | Microsoft製品のため、セキュリティは同社の更新プログラムに依存 | 不正アクセスなど外部からの脅威が考えられるため、セキュリティの高い製品を選ぶ必要有り |
導入コスト | Office製品のライセンス料が必要。 外注化すると+で費用がかかる 外注費:数万円〜100万円程度 | どのくらいの規模で、どのような自動化をするかで大きく変わる ・30万円〜数千万円程度 |
どちらを導入すべきかを決めるポイント
どんなポイントに注意して選定を進めればよいか、検討すべきポイントを整理します。
VBA | RPA | |
運用管理のしやすさ | スキルを持つ人材がいないと難しい | 運用支援のサポートを 受けられるので容易 |
対象の改善が Microsoft社の提供するアプリだけで完結するか | Microsoft社の Office系での自動化処理が 中心のため、有利 | 対応可能だが、Microsoft社のみだとコスト的にVBAをが有利 |
自動化できる業務量がどれくらいか | パソコンに依存するため、大量のデータ処理は不向き | サーバーやクラウド上での処理を想定しているなら有利 |
自動化するためのコスト | 新たな環境を整備する必要がないので低コスト | 小規模な自動化に対して行う場合は 高コスト |
システム障害に対応できるか | 専任スタッフに負担大 | カスタマーサポートでの対応可能 |
Microsoft製品をメインで使用している場合は「VBA」、それ以外は「RPA」がオススメ!
VBAとRPAを組み合わせることも1つの方法
業務によっては、RPAとVBAを組み合わせて使う方法もあります。
たとえば、Excel内の自動化にはVBAを使用して効率化し、外部のツールや媒体と連動させて自動化する際には、RPAツールを使用する。
組み合わせることによって、より自動化を効率的に進めることが可能です。
またRPAでの自動化に慣れてきたら、スキルアップのためにVBAを学んでみるのも良いかもしれません。より柔軟な自動化や運営の方法が模索できる可能性があります。
状況に応じてVBAとRPAを組合わせて使用すると効率化UP
まとめ
振り返り
・ExcelVBAの使い方の手順がわかる
・ExcelVBAの学習方法がわかる
・ExcelVBAのよくあるトラブルの解決策がわかる
しんたろ。ブログでは「少しでも残業を減らしたい」「時間効率を上げて新しいことにチャレンジしたい」「仕事で評価を上げて年収を上げたい」そんなあなたに向けて私が学んできたノウハウを最短ルートで教えるExcelブログとなっています。
覚えておくべき関数や操作方法を徹底解説!
習得する方法を解説
「独学で習得できる気がしない」そんな方に効率よく習得できる記事を書きました。
本や動画を紹介していますが、やはり一番効率の良い習得方法は、講師にわからないことを質問できる『オンラインスクール』です。
会社員でも不就労所得を作れる。
「会社の収入だけでは不安」そう思い出会った副業がブログでした。書いた記事たちが、あなたが寝ている間もずっと働いてくれます。『不就労』の完成です。
記事を書く際の様々な分析にExcelがとても役立ちます。私は2023年末までにブログで脱サラする予定です!
あなたもブログで脱サラしましょう!
問い合わせより直接相談していたくと
無料で相談にのりますよ♪
お気軽にご相談ください♪
今日はこのへんで。では