【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説

皆さんは、ExcelVBAを知っていますか?ExcelVBAができるようになると、Excelの作業を自動化できるだけでなく、様々な作業を効率化することができます。

ただ、なんとなく難しいイメージを持っている方も多いのではないでしょうか。そこで今回は、マクロとVBAの違いとは?といった基礎的なことから、

  • VBAを書くための準備
  • VBAの処理を書いて動かす方法
  • VBAのおすすめ学習方法

といった応用的な方法まで、徹底的に解説します!

マクロ・VBAとは?

はじめに、

マクロとかVBAってよく聞くけど、どんな意味なの?

と混乱する方が多いので、マクロとVBAの違いについて簡単に解説します。マクロは操作を自動化するための機能で、VBAはマクロの処理を動かすプログラムです。

画像:マクロとVBAの関係性のイメージ

たとえば、「ブック1のデータをコピーして、ブック2にデータを張り付けて保存する機能」のような、機能がマクロです。このマクロを動かすプログラムがVBAでVBAには次のようなコードが書いてあります。

  • ブック1を開く
  • ブック1のデータをコピーする
  • ブック2にデータを張り付ける
  • ブック2を上書き保存

このように、マクロとVBAは切っても切れない関係なので、簡単に関係性を覚えておくのがおすすめです!ちなみに、マクロとVBAについては以下でわかりやすく解説しているので、以下も見てみるのがおすすめです!

VBAとは?マクロとは?初心者向けにわかりやすくExcelVBAなどを解説
更新日 : 2019年5月3日

【超初心者向け】VBAを書いて動かす方法

次に、VBAを書く方法について解説します。

開発タブを表示する

まず、マクロ・VBAを作るための準備として、「開発タブ」を追加します。「開発タブ」の追加方法は次のとおりです。

1. ファイルタブからオプションを選択

画像:開発タブの追加

2. リボンのユーザ設定から開発タブにチェックを入れて、OKボタンクリック

画像:リボンのユーザー設定

これで開発タブが追加できました。

画像:ツールの開発タブ

VBEを開く

次に、VBEを開く方法について解説します。VBEは、VBAを書くためのエディタです。開発タブからVusual Basicを選択することで開くことができます。

画像:Vusual Basic

開くと次のようなエディタが起動します。

画像:Vusual Basicエディター

標準モジュールを追加する

次に、コードを書くためのモジュールを追加する方法について解説します。標準モジュールを使えば、簡単にコードを書くことができます。「プロジェクトエクスプローラで右クリック → 挿入 → 標準モジュールを選択」で標準モジュールを追加することができます。

画像:標準モジュール追加

追加すると次のようなウィンドウが出てきます。

画像:標準モジュール 新規画面

VBAを書くための要素は大きく分けて3つありますが、最初は標準モジュールだけ覚えておけばOKです。

VBAを書くための3要素

  • 標準モジュール
  • ユーザーフォーム
  • クラスモジュール

簡単に解説すると、標準モジュール・クラスモジュールはどちらもVBAのコードを書くことができるモジュールです。

クラスモジュールを使うとオブジェクト指向を意識したプログラミングができるようになるのですが、標準モジュールだけでも十分なツールが作れるので、最初は覚えなくてOKです!ユーザーフォームは、Excelで以下のような画面を作るときに使います。

画像:タスク登録画面

ユーザーフォームは便利なのですが、VBAの基礎を覚えてから作るのがおすすめです。以下で作り方についてまとめているので、VBAが慣れてきたら見てみてくださいね!

【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー)
更新日 : 2019年4月22日

Subプロシージャを作る

次に、Subプロシージャを作る方法について解説します。冒頭で説明した通り、「マクロは操作を自動化するための機能で、VBAはマクロの処理を動かすプログラム」です。そのため、まずはマクロを作るための箱を作ります。

Sub マクロ名を入力してEnterキーを押すと、次のようなコードができます。

画像:Sub マクロ名の入力

「Sub マクロ名() ~ End Sub」ここまでがマクロを作るための箱になります。この中にVBAのコードを書いていくことで、マクロを作っていきます。マクロ名の部分は日本語でも英語でもOKです。

ただ、英語で書いている人が圧倒的に多いので、英語で書くのがおすすめです!

処理をVBAで書く

次に、マクロに簡単な処理を書く方法について解説します。先ほど作ったマクロの中に処理を書いていきます。今回は簡単な例としてA1セルに「初めて書いたVBAコード」という文字列を書き込むためのコードを書いてみます。

サンプルコード:

画像:VBEの画面

Rangeメソッドを使えば、簡単にセルに値を書き込むことができます。Rangeメソッドの詳しい使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】Rangeでセルの範囲指定(Cellsとの使い分けも解説)
更新日 : 2019年5月27日

作ったマクロを実行する

次に、作ったマクロを動かす方法について解説します。Excelの画面から実行する方法、VBEから実行する方法の2つがあるのでそれぞれ解説しますね。

Excelの画面から実行する方法

まず、Excelの画面から実行する方法について解説します。手順は次のとおりです。

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

画像:開発タブからマクロを選択

2. 作成したマクロ名を選択し、実行ボタンをクリック

画像:作成したマクロ名を選択

VBEから実行する方法

次に、VBEから実行する方法について解説します。手順は次のとおりです。

1. マクロを選択してカーソルをマクロ内に表示

画像:マクロの記述

2. 実行タブから「Sub/ユーザーフォームの実行」をクリック

画像:実行

実行すると次のようにセルに文字列を書き込みます。

実行前:

画像:実行前エクセルシート

実行結果:

画像:実行後エクセルシート

「Sub/ユーザーフォームの実行」はF5キーでも実行できるので、合わせて覚えてくのがおすすめです!開発中はVBEで実行して動きを確認し、マクロを使うときはExcelの画面から実行のように使い分ければOKです!

これで、「セルに文字を書き込むマクロ」をVBAで書いて実行することができました。

VBAのおすすめ学習方法

ここまでの説明で、VBAを書く方法・作ったマクロを動かす方法はなんとなくわかったと思います。

ただ、この先どうやってVBAを学んでいけば良いかよくわからないですよね。そんな方向けに、おすすの学習方法についてご紹介します!

本で学習する方法

まずは、本で学習する方法です。整理された情報をまとめてみることができるので、体系的な知識を付けていきたい方におすすめです!とはいえ、VBAの本は多すぎて買うときに迷ってしまうので、おすすめ本を紹介している記事を紹介します!

【保存版】ExcelVBAの学習本をレベル分け!初級、中級、上級全6冊
更新日 : 2019年4月10日

わかりやすいサイトで覚える

本は丁寧な解説がまとまっているため1冊は持っておいた方がいいのですが、最新の知識が漏れてしまったり、膨大な量の基礎知識がありすぎて学習のモチベーションを維持するのが難しかったりします。

そのため、お気に入りの学習サイトを1つ見つけて学んでいくのもおすすめです!

とはいえ、VBAのサイトでも1から見ていくと膨大な量のページがあるためおすすめの検索方法をご紹介します。「site:VBAのお気に入りサイトのURL 調べたいキーワード」でググる方法です。

頭に「site:URL」を付けてから検索することで「指定したURLのサイトの中から検索する」ことができるので、自分がわかりやすいと思ったサイトから欲しい情報を調べることができます。侍エンジニア塾で調べる場合は、次のような感じです。

画像:「https://www.sejuku.net/blog VBA コピー」を検索

わかりやすいサイトの入門記事をいくつか見る → site:URL + キーワードで調べつつ覚えていくという流れで学んでいけば、自分がわかりやすいと思ったサイトから効率的にVBAを学ぶことができるので、とてもおすすめです!

おすすめの学習ステップ

本やお気に入りのサイトを見つければ学習を進められるのですが、何からどう覚えていけばいいのか最初はよくわからないと思います。

基礎って何から学べばいいの?

というのが本音ですよね。そんな方向けに、おすすめの学習ステップをご紹介します!

  1. 変数の使い方を覚える
  2. セルに値を書き込む方法を覚える
  3. シートにボタンを追加してVBAの処理を動かす
  4. 条件によって処理を分ける方法を覚える
  5. ループ処理する方法を覚える
  6. マクロの記録でExcelの操作を自動でマクロ化する

3までやれば、「シート上に置いたボタンをクリックしてセルに値を書き込むマクロ」を自分で書けるようになります。このように、まずは自分の書いたVBAをボタンクリックで動かす方法を覚えるのがおすすめです!

その後、4で処理の条件を分ける方法、5でループ処理する方法を学ぶことでより実践的なコードが書けるように学んでいくイメージですね。最後に、日々のExcel操作を自動化するVBAを書くために、マクロの記録機能で保存したVBAのコードを使ったより実践的なテクニックを学んでいきます。

6まで学ぶことができれば、「VBAの基礎はわかっている & 自分で書いたコードを動かせる & Excelの操作をVBAで作れる」状態になるので、あとは細かい処理の書き方を「site:VBAのお気に入りサイトのURL 調べたいキーワード」でググりつつ作っていけばOKです。

調べるときキーワードサンプル

  • site:https://www.sejuku.net フィルター操作
  • site:https://www.sejuku.net コピー
  • site:https://www.sejuku.net シート操作

まとめ

今回は、VBAの基礎・簡単な作り方・おすすめの学習方法などについて解説しました。まずは、今回の記事を見つつ「自分が書いたコードが動く体験」をして、VBAを楽しんで取り組んでみてください。

楽しくなるともっと覚えたい欲が出てくると思うので、おすすめの学習方法を見て学んでいくのがおすすめです。VBAができると、控えめに言って見える世界が変わりますので、ぜひ使ってみてくださいね!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説