マイクロソフトエクセルでは、VBAという言語をつかってプログラミングができます。
また、このプログラミングによってできた機能をマクロと言いますが、VBAをつかったマクロの開発ができるようになれば、日常のデスクワークを効率的に進めたり、エクセルが苦手な同僚の負担を軽くすることもできる可能性があります。
ここでは、マクロを作ることができる『エクセルVBA』の簡単な紹介をはじめ、VBAを使ったマクロの作り方と、マクロを開発するための設定方法を初心者向けに紹介しています。
また、VBAを学んでマクロの開発をするメリットなどをまとめています。

マクロの作り方と、マクロ開発に向けた設定方法をまとめているよ。
マクロを作るためのVBAについて知りたい人、日常の業務や作業でエクセルを使っている人けど、マクロを作って自動化や、効率化ができないか考えている人におすすめの内容です。
ぜひこちらを参考に、エクセルVBAをつかってマクロを作るきっかけしてください。
この記事は以下のような人におすすめです。

普段つかっているエクセルで、プログラミングができるって知ってた?
【結論】エクセルVBAでマクロ作りをはじめる方法
パソコンにエクセル(MicrosoftExcel)がインストールされていれば、初期状態から設定を変更するだけで開発をはじめられます。
エクセルでVBA(マクロ)開発をはじめるために準備する手順は以下のとおりです。
- エクセルの設定で開発タブを表示する(オプションからリボンのユーザー設定を変更する)
- 開発タブより、Visual Basicをクリックして、VBE(Visual Basic Editor)を起動する
VBE(Visual Basic Editor)とは、VBAを書くためのエディターを備えた統合開発環境ソフトです。
ユーザーフォームの作成から、ソースコードをコンパイル、実行やデバッグもできる優れもの。なんですが、一言で言えばこれ1つで大丈夫ということです。
エクセルの設定を変える以外にどこかから何かをダウンロードしたり、インストールをしたりとする必要はありません。
他のプログラミング言語では、開発をするための環境を設定することが難しいものも存在します。
最近では、ウェブ上で学習できるサービスを提供されているものもありますが、普段使っているエクセルだけで完了する手軽さはあまり知られていないように感じます。

エクセルの設定を変えるだけで、すぐにはじめられるんだよ。
それでは、それぞれの言葉の説明と、エクセルでの設定を変更してVBEを起動するまでの手順を解説していきます。
エクセルVBAとは何か。マクロとのちがいについて
エクセル(Excel)VBAとは
結論から言えば、VBA(ビジュアル・ベーシック・フォー・アプリケーション)は、汎用プログラミング言語です。
マイクロソフトオフィスに含まれる文書作成アプリのワード、表計算アプリのエクセル、データベースアプリのアクセス・プレゼン資料作成などに利用するパワーポイント、メールの送受信が行えるアプリであるアウトルックなどを操作することが可能です。
VBAは1991年に「Microsoft」によって開発・提供されたプログラミング言語である、VB(ヴィジュアル ベーシック)を、オフィス(office)に搭載したものです。
エクセル(Excel)VBAでできること
表計算ソフトであるエクセル(Excel)や、データベースの作成や管理ができるアクセス(Access)などのアプリケーションにおいて、業務におけるデータの入出力・転記・検索・照合・並び替えなどを処理を自動化したり、特定の処理を効率化したりと、作業の負担を減らしたり、他のマイクロソフトオフィスのアプリ間と連携をして操作することも可能です。
例えば、ブラウザアプリを起動し、インターネットからデータ取得(スクレイピング)や、メールアプリを起動してメールを送信する処理を自動化、または半自動化することができます。
エクセル(Excel)VBAとエクセルのワークシート関数や数式と異なる点
エクセルで関数や数式がつかえる人にとって、VBAでつくったマクロを使わなくてもできることがたくさんあります。しかし、エクセルのワークシート関数だけでは実現することが難しい機能でも、VBAでつくったマクロでなら実現ができます。
以下は、エクセルのワークシート関数のみでは、自動化や効率化の実現が難しい点をまとめたものです。
エクセルのワークシート関数のデメリットや実現が難しい点
- 基本的にシート関数では繰り返し処理はできない
- ワークシート上の数式や、関数はユーザーによって意図せず編集されてしまう恐れがある
- ワークシート上の数式が、複雑になったり文字数が多くなるとファイルの容量が大きくなる
- 原則として関数や数式を実行する契機が自分で設定できない
- エクセルやアクセス以外のアプリとの連携ができない
しかし、実装したい機能や、解決しなければならない課題の内容によっては、ワークシート関数や、数式をつかったほうが相性が良いものもあるので、VBA(マクロ)と組み合わせて開発していくと効率的な開発ができます。

マクロを作って、エクセル関数と組み合わせたりもできるよ。
エクセル(Excel)VBAとマクロとのちがい
エクセルで開発と言えば、「マクロ」と呼ばれる言葉を一般的によく聞くことが多いように思います。
恐らくインターネットで”エクセル VBA”のキーワードで検索しても、マクロに関する記事が検索結果として表示されるかと思います。
一見、同じような言葉であるかの印象ですが、ここではVBAとマクロの違いについて解説します。
エクセル(Excel)のマクロとは操作を”自動化する機能”
VBAについては、ビジュアル・ベーシック・フォー・アプリケーションと呼ばれるプログラミング言語だとお伝えしましたが、『マクロ』とは、簡単に言えば”VBAでつくった機能”そのものを指す言葉になります。
マクロを作り方として、VBAでプログラミングをする方法以外にも、マクロの記録をする機能があります。
エクセルで記録ボタンから停止ボタンを押すまでの間に行った操作を記録して、記録した操作を自動化します。
この方法で記録した機能もマクロと呼びます。
マクロの記録は、事前に記録した一連の操作を簡単に呼び出すための機能ですが、記録したユーザーの操作から、コンピューターがコーディング(プログラミング)を代わりにしています。自分でコーディング(プログラミング)をしなくても良い点で、VBAについての知識がない人でも、マクロが作れる点で便利な機能と言えるでしょう。
しかし、マクロの記録では自動化の醍醐味である繰り返しの操作が記録できないことや、非効率なコードが使われていることもあるため、マクロの真価を十分に受けとることができるとは言えないでしょう。
VBAとマクロの違いは以下のとおり
- VBAはマクロという機能を動かすためのひとつの手段である
- マクロの記録でコードを書く(プログラミング)をしなくても操作を自動化はできる
- マクロの記録でもコンピュータが自動でコードが作成される
- マクロの記録で作成されたコードが最適でないことがある
- マクロを使う上でもVBAのコードを読める知識は有効である

VBAはプログラミング言語で、VBAでつくられた機能をマクロと呼ぶ。ってことだね
エクセル(Excel)VBAでマクロの開発をはじめる方法
ここからは、VBAでマクロを開発をはじめるための設定方法を紹介します。Microsoftエクセルが使えるパソコンがあれば、別のアプリをダウンロードやインストールする必要はありませんので、簡単にはじめることができます。
エクセルでVBAをつかったマクロづくりをはじめる手順
まずはパソコンでエクセルを起動

エクセルが起動したら、以下の画面で「オプション」を選択

リボンのユーザー設定を選択し、メインタブより「開発」にチェックを入れてOK

これでリボンに「開発」タブが表示される

「開発」タブより「Visual Basic」をクリックすればVBE(Visual Basic Editor)と言われる開発環境が起動します。

ショートカットキーAlt+F11でも起動します。
(※Fnキーがある場合は、Fn+Alt+F11で起動します。)

フォルダ選択状態で右クリックして「挿入」から「標準モジュール」を選択すれば準備完了です。
※ショートカットキーAlt+I+Mでも同じ操作が可能です。

標準モジュール「Module1」が作られました。これでVBAのコードを書いていくことができます。
※実際にコードを書いていくエリアは黄色で囲んだ部分となります。

Visual Basic Editorの初期設定では白い画面が表示されています。初期設定で使いにくさを感じるようであれば、背景や文字の色を変更するなどの表示を変更することもできます。(※掲載画像では変更した後なっています)
表示の設定変更方法については、以下のサイトが丁寧に紹介してくれていますので、こちらを参考にすることをおすすめします。ここで掲載しているVBE画面の画像も、こちらのサイトに紹介されていた内容を参考に設定しています。
ここまで説明した手順でVBAをつかったマクロを開発する準備が整いました。
さっそく実際にコードを書いてマクロを作っていきたい人は、こちらの記事からすすめることができます。
エクセル(Excel)VBAでマクロの開発ができるメリット
ここではVBAを学ぶ・使うことでのメリットについて紹介します。
VBAを習得することで得られるメリットは大きく分けて2点になりますのでそれぞれについて説明します。
エクセル(Excel)VBAで入力や記録などの事務作業を効率化
最も目に見えて変わるところとして、繰り返し作業を効率化・自動化できるところです。
またこれらを任意の”きっかけ”で起動できるところです。
プログラムを起動するきっかけとは、ワークシートにボタンを設置して、そのボタンを押すと処理がはじまるような、誰もが一度は目にしたことがあるようなものが頭に浮かびますが、他にも、ファイルを起動することをきっかけにしたものや、特定の範囲のセルが書き換えられたこときっかけに起動するもの、指定時間になれば起動するものなど、起動するきっかけの種類はさまざまです。
また、マクロを開発するために、VBAでプログラミング(コーディング)をする時間は必要となりますが、作ってさえしまえば、あとの作業にかかる労力や、時間を削減できるので長期的に考えれば負担が軽くなります。社内で行っている毎日、毎週、毎月発生する事務作業で使えるようになれば高い効果が実感できます。
さらに、汎用性のあるマクロを作ってしまえば、作成したファイルに限らず、他のファイル(様式)にも使うこともできます。たとえば、作成したプログラムを完全に流用することができなくても、大部分をコピペし、そこからアップデートすることで、他のマクロを開発することにかかる労力も減らすための資産に変わっていきます。

マクロの開発を続けていけば、色々なケースに対応できる自分だけの辞書ができるよ。
VBAを学ぶと他のプログラミング言語の学習にも効果がある
VBAを学習することで得られるメリットは、事務作業の負担をへらすことができる以外もあります。それは他のプログラミング言語を学習していくステップとなることです。
プログラミング言語はたくさんあり何を学ぶべきか迷う人もいますが、まだどの言語もさわったことがない人は、開発環境の準備のハードルが低い言語で学習をはじめてみることをおすすめします。
「 VBA 」や「 Python 」以外にも「 Java 」や「 JavaScript 」、「 SQL 」、「 GAS 」、「 PHP 」なども使った経験がありますが、ひとつの言語である程度の学習をした経験や知識は、未経験の状態と比べて間違いなく他の言語を習得しやすくなります。

言語がちがっても、プログラミングで共通することはたくさんあるよ。
エクセル(Excel)VBAでマクロの開発ができるメリット
エクセルVBAでマクロの開発を実践していくことで得られるメリットをまとめると以下となります。
VBAでマクロが作れることのメリット
エクセルをつかって作業をすることが多い人は、マクロを作るようになると日常業務での負担がへることは間違いないです。
さらにマクロを部品化できるようになれば、一度につくったマクロを流用して新たなマクロに組み入れることもできるため、マクロを作るうえでも資産となります。
- 繰り返し作業を効率化・自動化ができる
- プログラムを開始するきっかけを指定することができる
- 汎用性のあるプログラムは使いまわせる
VBAでマクロの開発できると得られるその他のメリット
日常の業務以外でのメリットとしては、他のプログラミング言語を習得するとき、同じような系統の言語だと共通している部分があるので、全くプログラミングをしたことが無いときと比較すると学習難易度は下がります。
また、VBAをつかった開発案件の仕事ができるようになり、副業やフリーランスでのスキルとして役立つこともあります。
- 他のプログラミング言語の学習をはじめる時に理解しやすくなる
- クラウドソーシングなどで副業・フリーランスとして仕事を受けられるようになる
まとめ
VBAとは?マクロとは?一体どういったものか
VBA(Visual Basic for Applications)とは、エクセル、アクセス、ワード、アウトルック、パワーポイントなどのアプリケーションを操作したり・カスタマイズしたりできるプログラミング言語であり、WindowsやmacOS上で動作が可能なものです。
一方マクロとは、VBAというプログラミング言語で書かれたプログラム(機能)をとなります。例えば、新しくシートを作る。や、このセルの色を赤色にする、Excelファイルを開いたとき数式の計算を自動から手動に変更するなどの処理や機能のことです。
マクロに書かれたことを、コンピューターに指示するために使われている言葉がVBAで、VBAで動かした処理や機能がマクロになります。
VBAでマクロの開発のはじめ方と必要な環境・設定方法
MicrosoftExcelがインストールされたパソコンがあれば、いつでもどこでも無料で始められます。
ネット上から、何かのツールをダウンロードして、インストールや環境設定をする作業もありません。普段使っているExcelで少しの初期設定は必要なものの、Excelに入っているVBE(Visual Basic Editor)を起動してすぐに始められます。
VBAでマクロをつくることは、プログラミングをするということです。プログラミングって前から気になっているけどなかなか取っつきにくい人にとっては、身近なアプリであるExcelでプログラミングをはじめてみるのも良いでしょう。
VBAでマクロの開発ができるようになるメリット
●Officeを使ってデータベースや帳票管理をしている職場では貢献度は高い
情報出し入れが簡単な在庫管理表をつくることや、あるファイルから別のファイルへの転記。条件に合致した情報だけの検索や抽出、事前に作成した様式でリストにある顧客の請求書を作成・印刷すること、インターネット上の情報を収集してくるなど、マクロを作ればコンピューターに任せることができます。これらの作業をくり返し実施している職場では、マクロがつくれるスキルは大きな貢献できます。
●毎回行う繰り返し作業や機能を自動化し、作業負担を減らすとともに効率化が可能
職場への貢献度でも触れましたが、条件がシンプルでくり返す作業であれば、複雑な条件をもつ作業と比較して簡単にマクロにできます。つまりコンピューターに任せる作業としてプログラミングの難易度も低いものが多いです。
わたしの経験上でも、毎月数時間もかかる作業が数分になるなどの効果もありますので、最初にマクロをつくるためのコスト(労力や時間)はあるかもしれませんが、長い目で見ていけばマクロが1度できてしまえば対象となっている作業の時間や労力は減っていきます。
●プログラミング言語による作法の違いはあっても、他のプログラミング言語を学習するときでも得た知識は役立つ
ExcelVBAである程度の知識がつくと、他のプログラミング言語が気になってきます。プログラミング言語は世の中に数多くあり、それぞれの言語で得意や苦手な特色をもっています。
しかし、1つのプログラミング言語を習得することは、全く親和性のないプログラミング言語の学び直しでもない限り、他の言語でも共通する部分が存在するので、普段はつかっていないプログラミング言語のコードをみたときでも、何となく読めたりします。
また、学習するためのハードルが低いExcelVBAを学んだ人が、Pythonなどの他のプログラミング言語の習得をしている例はユーチューバーの中にもいらっしゃいますので、参考となる情報が多いの点もよいところだと言えます。
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント