今回の記事はマクロとVBAについてお話しします。
「マクロを使ったら、効率よく作業ができる」
「マクロだったらワンクリックで完了」
業務をもっと効率よく作業ができないのか調べた時に必ずと言っていいほど出てくるのが「マクロ」です。
でもマクロって難しいんでしょ?
プログラミングができないと無理でしょ?
そう思われている方も多いと思いますが、よくあるのが「マクロとVBAの混同」です。
「マクロ=VBA」と思われている方も多いですが、その違いも含めてご紹介します。
Excel(エクセル)を使いこなすのって結構難しいです。
Excel(エクセル)は、出来ることが多くて覚えるのがかなり大変です。
そんな方のためにExcel(エクセル)の使い方や、関数のコツ、ピボットテーブルやグラフなどをまとめたページをライン登録で無料プレゼントしております。
Excel(エクセル)以外にも、Word(ワード)、パソコン基本、PowerPoint(パワーポイント)、Mac、ブラインドタッチなどの特典もございます。
ご興味ある方は下記よりご登録ください。
VBAとマクロの違いとは?
マクロとはコンピュータの操作を自動化するための技術のことを指します。
自動化を搭載した製品は多く、その機能自体のことをマクロ機能と呼びます。
VBA( Visual Basic for Applications)はマイクロソフト社が提供しているプログラム言語の名称で、microsoft officeに含まれるアプリケーションソフトの拡張機能です。
コンピューターの自動化機能全般を指す言葉であるマクロと、
マイクロソフト社の提供するプログラミング言語であるVBAは全くの別物といえるでしょう。
ただし用途が似ているので混同されることもあります。
マクロとVBAはどちらも表計算ソフトでお馴染みですが、実は似ているようで全くことなる機能です。
マクロは操作を記録するもので、同じ操作を繰り返す場合に役立つ機能のことです。
毎回同じ操作が必要になる時は、マクロに記録して残しておくと、次回からの手間が省けます。
一方のVBAはプログラムの一種で、特定の条件に応じて処理を切り替える、といった使い方をします。
技術的にはマクロよりも高度ですが、使いこなせばさらに作業が楽になります。
VBAとマクロ できることとできないこと
マクロを記録したときに使われるのが、VBAというプログラミング言語です。
なので、マクロで記述できることはVBAを使って自分で記述することが可能です。
しかし、逆にVBAで行うことをマクロで記録することは難しいです。
例えば、VBAでは「条件分岐の処理」や「繰り返し処理(ループ)」が可能です。
これがマクロではできません。
- ○○の場合はAにする、□□の場合はBにする
- 指定した処理を〇回繰り返す
- 指定した処理を〇〇の間繰り返す
など、その時の条件に応じで処理をするというプログラムはVBAでなければできないので、注意が必要です。
マクロとVBAの違い 画像解説
マクロは処理手順の記録・実行
マクロはコンピューターの操作を自動化する機能のそのもののことを言います。いわゆる「便利な機能」というものです。
エクセルではマクロ記録を活用することが出来ます。
マクロを作るための手段の1つがVBAとなるので、似て非なるものです。
Excelには「マクロの記録」という機能が備わっており、それを使えば比較的簡単にVBAのコードを書くことができます。
マクロは、操作を登録して、それを使いたい時に呼び出すことができます。
1つのマクロに登録できる操作は複数できるので、例えば、データの集計で、
- フィルター機能を使う
- 売上の上位10件を抽出する
- 売上の多い順番に並べ替える
といった3つの操作を1つのマクロに登録することも可能です。
自分で毎回やると時間がかかる作業も、マクロに登録して自動化してしまえば、作業効率がアップします。
あなたが「毎日繰り返している作業」「月末などで毎回繰り返している作業」をマクロに登録しておくと、データの管理もとても便利ですね
マクロを使うには「開発」タブが必要
タブの中から「開発」を選ぶと簡単に記録することが出来ます。
しかし、初期設定のエクセルの場合は「開発」という項目自体がありません。
そこでオプションから「開発」を追加する必要があります。
エクセルを開いたら、
「ファイル」タブ→オプション→リボンのユーザー設定→右側の一覧にある「開発」にチェックを入れて、「OK」をクリックしましょう。
これで「開発」タブが表示されているはずです。
マクロの記録の手順
「開発」タブを選択すると「マクロの記録」ダイアログボックスが表示されます。
マクロ名に名前を入力して「OK」をクリックします。
OKをクリックした後はすぐに、操作の記録が開始されます。
この間に動かした操作が記録され、実行するとその通りに動くことになります。
つまり、操作ミスややり直しも含めて全て記録されてしまうので、マクロの登録をする前に、一度操作手順の確認をしてから、登録をするのがオススメです。
操作を終えたら記録終了をクリックします。
実行は「開発タブ」または「ボタン」
実行したい場合は、コードグループの「マクロ」をクリックした後に、実行したいマクロを選択後、「実行」という項目をクリックするだけで簡単におこなえます。
よく実行するマクロであれば、「ボタン」の作成もオススメです。
「ボタン」は、コントロールグループ→挿入→フォームコントロール→ボタン→登録したいマクロを選択→「OK」をクリック
この手順で作成できるので、ボタンを押せば実行可能です。
このように、マクロの処理は記録と実行が中心で、手順の記録が完了したら、後は実行するだけで同じ内容が再現されます。
手動操作をする前に記録を始め、実行したい処理まで操作を終えたら記録を止める。
この手順でマクロが作成できます。
追加さえしておければいつでもマクロ記録、実行を行うことが出来るので便利です。
実際の操作を記録することが出来るので難しい入力などを行わなくても問題はありません。
同じ作業を繰り返すときに役立ちます。
エクセルのマクロ記録は、一般的にいうマクロを見事に再現しているものです。
つまり、並べ替えや抽出といった手間の掛かる操作が、二回目からはボタンを押すのみと簡略化できるわけです。
特に、エクセルでは並べ替え操作をする機会が多いですから、予め作成して用意すると非常に便利です。
VBAはプログラミング言語
VBAはマクロを実現するために重要となるプログラミング言語です。
例えば、エクセルを操作する際にマクロの記録と実行を行っていれば、それは知らず知らずのうちにVBAを利用していることになります。
エクセルはマイクロソフト社が生み出したソフトなので、マイクロソフト社のプログラミング言語が活用されています。
マクロがコンピューター上の実際の動きで記録するのに対し、VBAはプログラミングを行うことで記録するという違いがあります。
VBAは、いわばマクロを手動で実現するような機能で、高度な操作さえも再現してしまうプログラム言語です。
プログラム言語なので、習得にはそれなりの学習コストが発生しますが、マクロでは難しい処理も行えるようになります。
マクロはVBAを知らなくても可能
前述したように、マクロは、プログラムを実行するための機能のことで、VBAはMicrosoft Officeのプログラミング言語です。
なので、関連はあるものの、別の物なんです。
そして、実際問題で言えば、VBAの知識がなくてもマクロは使えます。
マクロは、一連の操作の流れを記録して、それをボタン1つで実行できる便利機能です。
業務効率化ができるため、ビジネスでも活用されることが多く、マクロ機能を使って、操作を記録する際に、後ろで自動でVBAというプログラミング言語でプログラムが記録されているので、プログラミングがわからなくても使用できるツールなんです。
VBAで記録されるという点で考えれば、VBAについて少しでもわかっておけば、全く知らないよりは良いですが、知らないからマクロが使えないということはありません。
では、実際に簡単なマクロを記録してみましょう。
今回は、フォントの設定を
- フォントサイズ:20
- フォントの色:赤
- 太字
に設定します。
「開発」タブの「コード」グループにある「マクロの記録」をクリックします。
「マクロの記録」ダイアログボックスが開きます。
マクロ名を入力して「OK」をクリックします。
マクロ名はどんな操作を登録するのかわかりやすい名前を付けましょう。
「OK」をクリックし、ダイアログボックスが閉じられると、「マクロの記録」ボタンが「記録終了」に変わります。
この後の手順は、すべてマクロで記録されます。
では、操作の流れを実際に行い、マクロに登録しましょう。
まず、ホームタブのフォントグループの右下にある「フォントの設定」ボタンをクリックします。
「フォント」タブから「サイズ」「色」「スタイル」を選択し、選択できたら「OK」をクリックします。
すると、書式が変更されます。
変更ができたら、「開発」タブの「記録終了」をクリックします。
では、実際に登録したマクロを他のセルに適用してみましょう。
書式を適用したいセルを選択します。
「開発」タブの「コード」グループの「マクロ」をクリックします。
「マクロ」のダイアログボックスが開きます。
一覧から実行したいマクロを選択して「実行」をクリックします。
マクロが実行され、書式が適用されました。
今回記録したマクロの手順です。
設定した内容以外にも、適用されている書式の情報が自動で反映されています。
マクロを登録するときはココに注意!
マクロは、記録を開始してからの手順がすべて記録されてしまいます。
前述した内容と同じフォントの設定
- フォントサイズ:20
- フォントの色:赤
- 太字
を記録します。
このように自分が操作した内容が記録されてしまいます。
上記の記録では、とくに問題はありません。
太字の設定をし忘れて、ダイアログボックスを閉じた後に追加で設定しても悪影響はありません。
また、画面をスクロールしてそれが記録されても、アクティブセルから移動するわけではないので、悪影響はありません。
この場合だと、実行には問題ないけど、記述が美しくないくらいのことなので、実行自体には問題はないというわけです。
マクロがうまく適用されない例
マクロの記録の流れは先ほど同様、フォントの設定を
- フォントサイズ:20
- フォントの色:赤
- 太字
に設定します。
一見、問題ないように見えますが、最初に「セルA2を選択する」という手順が行われています。
この場合、他のセルを選択して、マクロを実行したとしても・・・
そのセルには適用されません。
最初に紹介した正しい手順では、セルの選択手順が入っていません。
絶対位置を指定する必要があるか
先ほどのようにセルを選択する手順をマクロに記録してしまうと、そのセルのための操作の記録になってしまいます。
マクロの記録を開始してから行ったセルの選択は、絶対位置として記録されてしまうので、その操作の必要性がポイントになります。
今回のマクロで言えば、「選択したセルに適用したい」ので、セル【A2】に適用したいわけではありません。
なので、記録を開始してからセル【A2】を選択する手順が不要だったということになります。
VBAが少しわかれば修正もできる
マクロの記録を間違ってしまったら、最初からやり直さなければならないのか・・・というと、そういうわけでもありません。
もちろん、複雑な流れだったり、修正箇所が多い場合は最初から記録し直した方が効率が良いでしょう。
しかし、今回のように、セルの選択する手順だけ不要だったなどの場合は、簡単に修正することができます。
「開発」タブの「コード」グループにある「Visual Basic」をクリックします。
すると、新しいウィンドウでコードが記述されたシートが表示されます。
ちなみに、これをVBE(Visual Basic Editor)といい、マクロを編集したり、VBAを入力するときに使います。
それでは実際に、今回不要なセル【A2】を選択するという記述を削除します。
「Range("A2").Select」を選択します。
選択できたら、Deleteキーを押して削除しましょう。
これで、セル選択の記述が削除されました。
この状態で、マクロを適用すると、選択したセルに書式を適用することができました。
Excel(エクセル)を使いこなすのって結構難しいです。
Excel(エクセル)は、出来ることが多くて覚えるのがかなり大変です。
そんな方のためにExcel(エクセル)の使い方や、関数のコツ、ピボットテーブルやグラフなどをまとめたページをライン登録で無料プレゼントしております。
Excel(エクセル)以外にも、Word(ワード)、パソコン基本、PowerPoint(パワーポイント)、Mac、ブラインドタッチなどの特典もございます。
ご興味ある方は下記よりご登録ください。
マクロはVBAを知らなくても可能
このように、VBAというプログラミングの言語がよくわかっていない、自分では記述もできないという場合でも、マクロは使うことができます。
ただ、マクロは、操作したその手順をすべて記録されてしまいます。
なので、今回のように一部を削除するだけで修正ができる場合、VBAの記述について少しでも読み解くことができれば、修正も楽に行うことができます。
VBAをすべて理解する必要はないですが、どういうことが書いてあるのか、何を修正したら良いのかということがわかるとマクロを使うときも便利ですね。
マクロの記録を失敗しないための方法
それでもVBAを読み解くのは難しい、記述を編集するのが不安という人は、マクロを記録する前の練習を徹底して行いましょう。
基本的な流れとして、マクロを記録する前に操作手順の確認の練習を行います。
もちろん、その操作の流れに100%の自信がある!絶対に間違わない!という場合や、ちょっと間違っても自分でコードの修正ができるという場合には、練習なしでも構いません。
しかし、ちょっと複雑な作業や操作の手順に自信がない場合、間違っても自分でコードの修正が難しい場合は、ぜひ、マクロの記録を行う前に手順の確認の練習を行ってください。
練習をして、「もう大丈夫!」という自信を付けてからマクロの記録をすることをオススメします。
あくまでもマクロは「手順の記録」をしてくれる機能です。
操作する側が手順を間違ってしまえば、間違った手順が記録されてしまいます。
なので、「正しい手順」を記録できることが前提となります。
違いが分かればコードは書けるか
マクロとVBAの違いが分かるとVBAの仕組みを理解したことになります。
しかし、そこからはプログラミングの書き方を覚えなければならないので
即座にコードを書けるということではありません。
ただ、マクロとVBAの違いが分かれば、コードの入力までの道は開けていけます。
マクロ記録とコードの確認を繰り返すことで法則性が見えてくることになります。
そこまで分かったらあとは入力の方法を覚えていくことで書けるようになる可能性が高いです。
マクロとVBAの違いが分かっても、直ぐにコードが書けるわけではなく、マクロ以上の学習が必要となります。
VBAはエクセル専用ではなく、独自に発展したプログラム言語なので、習得には相応の時間や労力が問われます。
しかし、普段の操作を頭の中で整理できたり、処理の内容を想像することが可能であれば、
早く習得できる可能性があるといえます。
それはプログラマーの素質を意味していて、コツが掴めたりスムーズに学習できることでもあります。
マクロをザックリ解説
マクロの解説動画
マクロの解説画像
マクロを修正する方法|基礎編
マクロを修正する方法の基本|基礎編の解説動画
マクロを修正する方法の基本|基礎編の解説画像
VBAの基本をわかりやすく解説
わかりやすい動画解説
わかりやすい画像解説
VBAとは?
VBAとは、「Visual Basic for Applications」の略で、Microsoft Officeのアプリケーションで使うことができるプログラミング言語で、そのほかのサービスでは使うことができません。
VBAは、Excel(エクセル)だけでなく、Word(ワード)やPowerPoint(パワーポイント)、Access(アクセス)でも使用することができます。
VBAは、繰り返し行う作業やよく使う作業をプログラムとして登録して、自動で処理できるようにしておくことで作業効率を上げることができます。
プログラミングの入門にもオススメ
VBAはプログラミング言語のひとつですが、これからプログラミングを勉強したいという、プログラミングの入門にもオススメです。
というのも、VBAは全部自分で記述しなくても良いからです。
エンジニアを目指すのであれば、PythonやJava、PHPなどの言語がありますが、業務を効率的に進めたい、ということが目的であれば、VBAから始めてみるのがおすすめです。
VBAは、「マクロ」と一緒に組み合わせて使うことができるのがポイントです。
もちろん、条件を指定するなどの場合はVBAを使用しなくてはなりません。
しかし、例えば「色を変える」「罫線を引く」「並べ替え」「抽出」といった一連の流れはマクロで記録をすれば、プログラムが自動で記録されます。
このように、一部のプログラムをマクロで作り、VBAと組み合わせることができるため、プログラミングの勉強の入門としてもおすすめなんですね。
VBAの基本知識はこちら
VBE
VBEとは、VBAのプログラムを記述する専用のアプリの名前で、「開発」タブの「コード」グループにある「Visual Basic」をクリックすると、表示することができます。
VBEは、「プロジェクトエクスプローラー」「プロパティウィンドウ」「コードウィンドウ」の3つから構成されています。
モジュール
モジュールとは、VBEのコードウィンドウに表示されるシートで、このシートにプログラムを記述します。
また、マクロを記録した際もモジュールにプログラムが記録されています。
プロシージャ
プロシージャとは、モジュールに記述されたプログラムのことをいい、1つのモジュールに、複数のプロシージャを記述することができます。
「Sub」から「End Sub」までが一つのプログラムの塊となっていて、この「Sub」から「End Sub」までがプログラムとして実行できる最小の単位となっています。
プロシージャの中に記述する要素には「コメント行」と「ステートメント」があります。
コメント行
コメント行とは、「メモ書き」などのことを言います。
記述するプログラムの目的や注意点など、あとからコードを見返した時や、他の人がコードを見たときに分かりやすくなります。
必ずしも必要なものではないので、必要に応じて活用します。
コメント行を挿入するときは、最初に「シングルクォーテーション」を付けて、その後ろに文字列を入力します。
シングルクォーテーションを付けることで、コメント行として認識され、文字の色が緑色に変わり、プログラムに影響を与えない状態になります。
ステートメント
ステートメントとは、命令文のことを言います。
プロシージャの中に複数のステートメントを記述することが可能です。
ステートメントを構成する要素は、「オブジェクト」「プロパティ」「メソッド」の3つがあります。
オブジェクト
オブジェクトとは、操作をする際に、操作の対象となるもののことを言います。
例えば、ブックやシート、セルやフォント、グラフや図形などです。
プロパティ
プロパティとは、オブジェクトの属性や情報そのもののことを言います。
例えば、文字の色や文字のサイズ、セルの塗りつぶしなどです。
プロパティには、「値の設定」と「値の取得」の2つの機能があります。
メソッド
メソッドとは、オブジェクトに対して「何をするか」という動作や操作の指示・命令のことを言います。
例えば、「Select」の選択するや、「Delete」の削除するといった、動詞に当たるのがメソッドです。
この3つを組み合わせて、「セル【A3】を選択する」「選択したセルの文字のサイズの値を16に設定する」などのプログラムを作ることができます。
VBAを使うメリット
エクセルはOfficeソフトの中でも仕事でよく使われるソフトで、その作業をいかに効率よくするかということが全体の時間短縮にもなります。
そういった意味では、日々の業務でしている手作業をボタン一つで実行できるスキルを習得できれば大幅な時間短縮になり作業の効率化が期待できます。
また、VBAであれば、細かな条件の指定をすることができるため、実用性の高いプログラムを実行することが可能です。
条件を指定することができる
VBAを使うメリットは、冒頭にも述べたように「条件分岐」や「繰り返し」といったシステムを作ることができることです。
「選択されているセルが空白になるまで」や「処理を10回繰り返す」など状況に応じて処理を変更したい時はマクロではなく、VBAになります。
相対的な位置を選択できる
マクロでは、セルをクリックするため、その瞬間に位置が絶対参照になってしまいます。
そうなると、決まったセルにしか処理ができなくなってしまいます。
VBAでは「Cells」や「Offset」など相対的な位置を指定することができるので、表の範囲を自動的に選択したりすることも可能です。
そのため、処理の幅がかなり広くなり、様々な作業に応用することができます。
メッセージボックスやダイアログボックスも作成できる
処理に合わせてメッセージボックスを表示したり、テキストボックスを活用したダイアログ ボックスも使用することができます。
また、その回答に応じて処理を分岐することも可能です。
この他に、シートを単純にコピーするだけではなく、コピーしたシートの名前を自動あるいは任意の名前変更したり、マクロではできないことがVBAでは可能になるため、作業をさらに効率化することができ、ヒューマンエラーの防止にもなります。
VBAを勉強する時のポイント
初心者の人がVBAを勉強しようとするとき、1つ1つの用語の意味にこだわってしまって、なかなか前に進めないことがあります。
私自身もそうでしたが、すべての意味を理解しないといけないと思っていました。
でも、実際に勉強をして思うのは、もちろんテキストを読むにはその用語の意味が分からないと繋がらない…というのもあるのですが、それよりも記述したコードを日本語の意味に訳せることだったり、自分のやりたい内容の日本語をVBAにできることがポイントだと思いました。
例えば、プロパティの機能には「値の設定」と「値の取得」がありましたが、記述している内容が「設定」なのか「取得」なのか、「取得」とは何なのか…という点について、全くの初心者が最初からすべてを理解して進むにはなかなかハードルが高いです。
試験を受けるわけではありませんから、文法を暗記するよりも、記述する内容を噛み砕く、エクセルの操作と結び付けてイメージをするなど、自分がわかるように内容を変換しながらテキストを進める方がオススメです。
そしてテキストを複数回繰り返していくうちに、感覚が身についてくるようになるので、テキストをたっぷりと時間をかけて3か月で1回やるよりも、3か月で5~6回やる方が良いでしょう。
回数を重ねるごとに、ネットでも調べながら自分に落とし込んでいくのがオススメです。
Excel(エクセル)が苦手であればパソコン教室で学んでみませんか?
Excel(エクセル)はかなり奥が深く、知識を得ただけは操作が身に付きにくいものです。
そんな時には、弊社のようなパソコン教室を利用するのも一つの手です。
「オンライン」にも対応している「苦手な方専門パソコン教室パレハ」にお任せください。
オンラインというと「動画を見るだけ」とか「オンラインなんてやったことがない」というご不安があるかと思います。
ですが「苦手な方専門のパソコン教室パレハ」の「オンラインレッスン」は、動画ではなく、直接講師に質問できる生レッスンです。
生レッスンでありながらリーズナブルに学べるのが人気の秘密です。
また、苦手な方に特化しているのでパソコンが特に苦手だと言う方には最適です。
パソコンが苦手でも、オンラインできる仕組みがあります。
詳細は下記をご覧ください。
パソコンが苦手な方向けエクセル マクロ入門講座の詳細はコチラ
パソコンが苦手な方向けエクセル マクロ・VBA講座の詳細はコチラ
Excel(エクセル)の操作が苦手な方のために、操作する上でのコツをまとめたページを用意しました。
「パソコン教室パレハのLINE友達登録」(無料)で「パソコンに役立つ豪華15大特典」をお送りしております。
Excel(エクセル)の操作はもちろん、パソコンが苦手な方に役立つ特典を15個ご用意しております。
良かったら下記からご登録ください。
パレハ直営校
パレハグループ加盟校
下記はパレハグループ加盟校となります。
料金体制などは異なりますが、パレハが自信をもってご紹介できる教室です。
■ 岩出市にある「キュリオステーション 岩出店」の公式サイトはこちら
■ 愛知県名古屋市緑区にある 「有松パソコン教室」の公式サイトはこちら
■ 宮崎市にあるパソコン教室Cosmarp(コスマープ)の公式サイトはこちら
全国の教室一覧(実店舗&オンライン)|パレハ直営校&グループ加盟校
オンライン形式をご希望の方はこちら
東京・名古屋・大阪・福岡・札幌・横浜・仙台・埼玉・千葉・沖縄などで受講したい方はオンラインレッスン(Googleミートを使ったオンライン個別レッスンです)をお選びください。
オンラインレッスンは全国対応しています。
講座一覧はこちら
他にも講座は多数ございます。
詳しくは下記をご覧ください。
こちらもご覧ください
マクロが動かない時の原因と対処法|実行できない理由はこれだ!
マクロ・VBA|MsgBox関数でメッセージボックスを表示する方法
VBA|functionとsubの違いは?|パソコン教室講師が詳しく解説
Excel マクロVBA|オートフィルターの設定・解除・条件の入力方法
こんな記事も読まれています