スライドショー

【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とは?マクロとは?初心者向けに基礎の基礎をわかりやすく解説
更新日 : 2019年12月6日

【超初心者向け】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コード」という文字列を書き込むためのコードを書いてみます。

サンプルコード:

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

画像:VBEの画面

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

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

作ったマクロを実行する

次に、作ったマクロを動かす方法について解説します。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年8月17日

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

本は丁寧な解説がまとまっているため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を身につけて社内出世することが人生の理想なのか?を考えてみても良いかもしれません。

せっかくVBAというスキルを身につけようとしているなら、その熱量をプログラミングに向けることで、これまでとは全く違った人生を送れる可能性もあります。

実際にプログラミングを学んでみて、大企業のエンジニアへ転職し年収アップした方、主婦をやりながら在宅で仕事を取れるようになった方、フリーランスへ転向し、複業を続けている方など多くの人がプログラミングで人生を好転させています。

今後AIの発達によって、VBAを組んで効率化している業務のVBAを組む必要性さえなくなるかもしれません。この先も市場価値を高め続けるためにも親和性のあるプログラミングを学ぶのはおすすめです。

まずは何をやったらいいんだろう?というあなたはプログラミング学習診断アプリで、質問に答えていくだけであなたに最適なプログラミング言語を診断してみてください。何を学ぶべきか解説いたします。

プログラミング言語診断を受ける

VBAの将来性

VBAのスキルを学んで業務を効率化したい

このように思っている人は多いでしょう。

VBAの用途はさまざまで、

  • VBAのスキルがあれば転職できるのでは?
  • 業務効率化のスキルは需要が高そうだから

などが上げられます。確かに、業務効率化はどこの企業も目指していて、需要が高いように見えます。ただ、VBAを扱えることが強みになるかといわれると、すこし疑問があります。

VBAは基本的にエクセル上でしか使用することができません。しかし、最近では社内書式をスプレッドシートで管理している企業も増えており、今後エクセル自体の需要が少なくなってしまう可能性も考えられます。

そうなってしまうと、VBAを習得しても活躍の場が限られてしまいますよね。そう考えると将来的にVBAの需要はあまり高くないといえます。

ではVBAを学んでいる人はどうすればいいのでしょう。VBAの将来性や今後の対策などをこちらの記事でまとめているのでぜひご確認ください。

VBAより将来的にWebプログラミング言語がおすすめな3つの理由
更新日 : 2019年10月9日

まとめ

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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