MicrosoftのExcelのマクロとは、エクセルの一連の操作を自動化するための機能のことです。
マクロと聞くと、プログラミングができないと使えないと思う人が多いですが、簡単なエクセル操作のマクロであれば、誰でも簡単にマクロを作成することができます。
日々のルーティン業務で、「表を並べ替える」、「色を付ける」、「検索や置換する」、「フィルターをかける」、「罫線をつける」などの規則性のある業務は、マクロを使った自動化に最適です。
普段から、マクロを使おうか悩んでいる方は、この記事を見ながらマクロを習得してみましょう。
今回の記事では、エクセルの初心者向けにマクロに関する以下の内容をお届けします。
この記事で紹介する内容
・マクロとは?
・マクロとVBAの違い
・マクロの基本操作と手順
・マクロを使った2つの実例(絶対参照と相対参照)
・マクロに関する予備知識とテクニック
・マクロを使う上での注意点
エクセルのマクロとは?
Excelのマクロとは、エクセルの一連の操作を自動化するための機能のことです。
例えば、下の図のように、「2行目にフィルターをかける」⇒「B列から大阪だけを抽出する」という複数の操作をマクロを使って、自動化することができます。
特に、以下のような規則性のあるルーティン作業は、マクロを利用して、自動化しやすい業務です。
マクロにしやすい作業
・セルに色を塗る
・検索や置換を行う
・フィルターをかける
・列を並び替える
・セルの書式設定で表示を変更する
・グラフを挿入する
VBAというマクロを作るためのプログラミング言語を使えば、より高度な作業を自動化することもできます。
今回紹介するマクロの作成は、VBAの知識は一切不要です。
「マクロの記録」というコマンドを使うことで、プログラミングの知識がなくても、一連の作業をマクロにすることができます。
マクロとVBAとの違い
マクロとは別に「VBA」という言葉を聞いたことがある方もいるかもしれません。
「VBA」は、「Visual Basic for Applications」の略で、プログラミング言語のことです。
VBAはマクロを作るためのプログラミング言語のことを指しています。一方、マクロは自動化する機能そのものなので、似ていますが、少し異なります。
VBAを習得すると、エクセルだけでなく、より複雑な操作を自動化することができます。
VBAを習得して出来ること(例)
・データ処理の自動化
・進捗管理表を更新
・データをメンバーに一斉配信
・複数のエクセルに分割
・パワポへグラフを挿入
・フォルダ内のエクセルを一斉処理
ただし、VBAを使うにはプログラミング言語を学習する必要があります。
しかし、Excel VBAベーシック試験であれば、合格するための勉強時間「約50時間」で、決してハードルが高すぎるわけではありません。
「いつかVBAを習得してみたい!」という方は、まずはこの記事で紹介する「マクロの記録」機能を学習して、マクロがどんなものなのかを感じてください。
マクロを作成する方法と手順
今回紹介するマクロは、VBAを使わずに「マクロの記録」という機能を利用します。
「マクロの記録」は、記録ボタンを押してから、自身で行ったエクセル操作を記録し、マクロを自動で作成するものです。
大まかな作業の流れは以下のとおりです。
マクロを作成する流れ
手順1.ファイルの拡張子を「マクロ有効ブック」に変更
手順2.マクロの記録の開始
手順3.エクセルを操作
手順4.マクロの記録を終了
手順5.記録したマクロを実行して確認
手順1~5を詳しく解説しますので、どんな作業を行うのかイメージしてください。
手順1.拡張子を「マクロ有効ブック」に変更
まずは、マクロを記録したいExcelブックの拡張子を変更します。
拡張子とは、ファイルの種類を識別するために使われる、ファイル名の末尾にあるピリオド(ドット)で区切られた「英数字1~4文字」のことです。
通常のExcelファイルの拡張子が「xlsx」であるのに対し、マクロを利用出来るExcelファイルは「xlsm」となります。
Excelの「ファイル」タブの「コピーを保存」から、以下のようにプルダウンリストから「Excelマクロ有効ブック(*.xlsm)」を選択することで、拡張子を変更することができます。
手順2.マクロの記録の開始
Excelの拡張子を変更したら、マクロの記録を開始します。
「表示」タブの「マクロ」コマンドから「マクロの記録」をクリックします。
続いて、マクロの名前を付けます。
また、「Ctrl」キーもしくは「Ctrl+Shift」キーと組み合わたショートカットキーを設定することもできます。(入力は任意)
手順3.エクセルを操作
マクロの記録を開始したら、「マクロの記録」ボタンは「記録終了」ボタンに変わります。
ボタンの表示が変わったら、いよいよ自動化したいエクセルの操作を行っていきます。
まずは、2行目の行番号をクリックして、「ホーム」タブの「並べ替えとフィルター」から「フィルター」を選択します。
続いて、B2セルのフィルターボタンを押して、「大阪」だけにチェックを入れます。
そうすると、表から大阪だけを抽出することができました。
以上で、記録したいエクセルの操作は完了です。
手順4.マクロの記録を終了
自動化したいエクセル操作が完了したので、「表示」タブの「マクロ」コマンドから「記録終了」をクリックします。
以上の操作で、マクロを作成することができました。
手順5.記録したマクロを実行(自動化の完了)
それでは、実際に作ったマクロを利用してみましょう。
フィルターを解除して、表を元の状態に戻してください。
続いて、「表示」タブの「マクロ」コマンドから「マクロの表示」をクリックします。
「マクロ」画面から、作成したマクロ名を選択し、「実行」ボタンを押します。
そうすると、マクロを記録した手順どおりに、エクセルを一発で自動で加工してくれます。
下の図のように、「フィルターで大阪が抽出」できれば、無事にマクロの作成は完了です。
エクセルは上書きして保存して閉じても、マクロは消えません。
また、マクロを記録したExcelブックを開いておくと、マクロ有効ブック以外の拡張子の別のExcelブックに対してマクロを実行することが出来ます。
マクロの使い方のポイント
・マクロが記録されたエクセルを開くと、別のExcelブックでもマクロを実行できる
マクロは『絶対参照』と『相対参照』の理解が重要
上記では、基本的なエクセル操作を例にマクロを作成しました。
続いて、マクロの記録の2種類の方法について解説します。
マクロの記録には、「絶対参照で記録」「相対参照で記録」の2種類の記録方法があります。
マクロの記録の種類
・絶対参照で記録
・相対参照で記録
「マクロ」コマンドの「相対参照で記録」ボタンを押すことで、絶対参照と相対参照を切り替えることができます。
似ているように見えるけど、相対参照はボタンが四角で囲われているよ
この2つの参照方法を理解するためには、まずExcelのセルの参照方法、『絶対参照』と『相対参照』を理解する必要があります。
『絶対参照』と『相対参照』の違い
セルの参照は、『絶対参照』と『相対参照』という2つ参照方法があります。
皆さんは、知らず知らずのうちに、数式に「$」マークをつけたり外したりして、「絶対参照」と「相対参照」を使い分けているかもしれません。
「絶対参照」とは、数式セルを別のセルにコピーしたときに、数式の参照セルが移動しないように「$」マークを付けて固定することをいいます。
一方、「相対参照」とは、数式セルを別のセルにコピーしたときに、参照するセルが自動で相対的に移動することをいいます。
数式だけでなく、マクロの記録においても、セルを相対参照にするのか、絶対参照にするのかを判断する必要があります。
数式の絶対参照と相対参照を詳しく知りたい方は、以下の記事を参考にしてください。
マクロに記録される内容の違い
数式と同様、マクロの記録中にも、『絶対参照で記録』と『相対参照で記録』では、内容が異なります。
絶対参照は、「指定したセルを対象に操作」として記録されます。
一方、相対参照では、「選択中のセルから何行、何列離れたセルを対象に操作」として記録されます。
マクロの参照方法の違い
絶対参照⇒指定したセルを対象に操作
相対参照⇒選択中のセルから何行(何列)離れたセルを対象に操作
例えば、「セルA1を選択してから、セルC1を黄色で色塗りする」という操作を絶対参照でマクロを記録します。
その場合、A3セルを選択してから、マクロを実行しても、必ずC1セルが黄色に変更されます。
一方、「セルA1を選択してから、セルC1を黄色で色塗りする」という操作を相対参照でマクロの記録します。
その場合、セルA3を選択してから、マクロを実行すると、A3セルの2つ右横のC3セルが黄色に変更されます。
Excelマクロを使った実例(小計列を挿入)
それでは、実際に「相対参照で記録」するExcelマクロの実例を紹介します。
下の表の赤枠のように、表に四半期の合計列を自動で挿入するマクロを作成していきます。
小計列の挿入をマクロに記録する手順
それでは、マクロを記録する手順を紹介していきます。
マクロの記録中に操作を間違った場合は、記録を終了し、もう一度始めから記録を開始してください。
手順1.拡張子を「マクロ有効ブック」に変更
まずは、「ファイル」タブの「コピーを保存」から、エクセルの拡張子を「Excelマクロ有効ブック(*.xlsm)」に変更して保存します。
手順2.マクロの記録を開始するセルを選択
「マクロの記録」を開始する前に、相対参照の基準となるセルH1をクリックします。
手順3.マクロの記録を開始
「表示」タブの「マクロ」コマンドから「マクロの記録」をクリックします。
手順4.マクロの記録名を設定
「マクロ名」を設定し、ショートカットキーを設定したい場合は、任意のアルファベットを入力してください。設定したら「OK」を押します。
手順5.相対参照に切り替える
相対参照でマクロを記録したいので、「表示」タブの「マクロ」コマンドから「相対参照で記録」をクリックします。これから先のExcel作業はすべて相対参照で記録していきます。
手順6.列を挿入
H列の列番号をクリックして、右クリックします。右クリックメニューの「挿入」を選択し、列を挿入します。
手順7.SUM関数を挿入
H2セルに見出しを入力します。次に、4月~5月の販売数量を合計するために、H3セルにSUM関数「=SUM(E3:G3)」を挿入します。
手順8.SUM関数をコピペ
H3セルをコピペして、下のセルにSUM関数を貼り付けします。
手順9.太い外枠の罫線を引く
H列のセル範囲を選択して、「ホーム」タブから「太い外枠」の罫線を引きます。
手順10.セルに色を付ける
H列の見出し以外のセル範囲を選択して、「ホーム」タブから塗りつぶしたい「色」を選択します
手順11.マクロ実行後のセルを選択して、マクロを終了
マクロを実行した後に、連続してマクロを実行できるようにするために、3列右のL1セルを選択します。
マクロに記録したい作業は終了したので、「相対参照で記録」を押して絶対参照に切り替えてから、「記録終了」を選択します。
小計列を挿入するマクロを実行する
実際に記録したマクロを実行して、マクロが正しく機能するか試してみましょう。
マクロを記録する際に挿入した四半期合計列を削除して以下の手順を実行してください。
手順1.マクロを実行する基準のセルを選択
マクロを実行する基準となるH1セルを選択してから、「マクロの表示」をクリックします。マクロを記録する際に設定したショートカットキー(Ctrl+Shift+Qなど)を利用してもOKです。
手順2.マクロを実行
作成したマクロの名前を選択して、「実行」ボタンを押します。
手順3.マクロを連続して実行
下の図のように、四半期合計列が自動で挿入されていれば、正しくマクロが作成出来ています。マクロ実行後は、セルがL1セルに移動するので、手順1,2をもう一度実行して連続してマクロを実行します。
手順4.2回目のマクロの結果を確認
2回連続でマクロを実行したことにより、今度は7~9月の四半期合計列が挿入されました。
このように、相対参照でマクロを作成することで、選択したセルを起点に作業を自動化し時短することができます。
Excelマクロを使った実例2(列の並べ替え)
今度は、「絶対参照で記録」するExcelマクロの実例を紹介します。
絶対参照でマクロを記録すると、必ず指定したセルに対してマクロが実行されます。
そのため、表のサイズや並び順が常に同じ表に対して、列を並べ替えする作業などは、マクロの利用に最適です。
列の並べ替えをマクロに記録する手順
それでは、マクロを記録する手順を紹介していきます。
マクロの記録中に操作を間違った場合は、記録を終了し、もう一度始めから記録を開始してください。
手順1.拡張子を「マクロ有効ブック」に変更
まずは、「ファイル」タブの「コピーを保存」から、エクセルの拡張子を「Excelマクロ有効ブック(*.xlsm)」に変更して保存します。
手順2.マクロの記録を開始
「表示」タブの「マクロ」コマンドから「マクロの記録」をクリックします。絶対参照でマクロを記録するため、マクロの記録開始のアクティブセルの位置は任意です。
手順3.マクロの記録名を設定
「マクロ名」を設定し、ショートカットキーを設定したい場合は、任意のアルファベットを入力してください。設定したら「OK」を押します。
手順4.列を切り取りする
まずは「販売単価4月」列を移動するために、G列を切り取りします。
手順5.切り取った列を移動
続いて、挿入したいE列の列番号をクリックしてから右クリックします。次に、右クリックメニューの「切り取ったセルの挿入」を選択します。
手順6.列に移動が完了
「販売単価4月」列の移動が完了しました。
手順7.残りの列も切り取り&挿入
手順4、5を繰り返して、表の並べ替えを完了させます。
手順8.マクロを終了
「表示」タブの「マクロ」から「記録終了」を選択します。マクロを実行した後に表示したいセルがあれば、選択してから「記録終了」を押しましょう。
並べ替えのマクロを実行する
実際に記録したマクロを実行して、マクロが正しく機能するか試してみましょう。
マクロを記録する際の状態に表を戻して、以下の手順を実行してください。
手順1.マクロを実行する基準のセルを選択
「表示」タブの「マクロの表示」をクリックします。マクロを記録する際に設定したショートカットキー(Ctrl+Shift+Wなど)を利用してもOKです。
手順2.マクロを実行
利用するマクロの名前を選択して、「実行」ボタンを押します。
手順3.マクロの実行結果を確認
下の図のように、列が自動で並べ替えされていれば、正しくマクロが作成出来ています。
マクロを削除する方法(記録を失敗・間違った時)
マクロの記録中に作業する手順や、参照方法を誤ってしまった場合は、マクロの記録を終了し、再度マクロを一から記録しましょう。
間違って作ってしまったマクロは、「表示」タブの「マクロの表示」から、「削除」ボタンを押すことで削除することができます。
「開発」タブはマクロの作業に便利
マクロを利用するようになったら、「開発」タブをオープンしておくことをお薦めします。
「開発」タブは、マクロの表示やマクロの記録の開始などのコマンドに、マクロのVBAを編集する「Visual Basic Editor(VBE)」も利用することができます。
「開発」タブがタブ一覧に無い場合は、以下の手順で「開発」タブを表示させてください。
「ファイル」タブをクリックし、「その他」⇒「オプション」をクリックします。
「Excelのオプション」画面が表示されるので、左側のメニューから「リボンのユーザー設定」を選択します。
画面右側から「開発」タブにチェックを入れて、「OK」を押して画面を閉じます。
以上で、「表示」タブの右側に「開発」タブが表示されていることを確認してください。
Excelマクロの予備知識・テクニックを紹介
エクセルでマクロを利用する際、知っておくとより便利な知識とテクニックを紹介します。
マクロのショートカットキーを設定&変更
上記で紹介したとおり、マクロの記録を開始する前に、「Ctrl」キーや「Ctrl+Shift」キーを使ったショートカットキーを設定できます。
マクロのショートカットキー
・「Ctrl」キーとアルファベットキーの同時押し
・「Ctrl」キーと「Shift」キーとアルファベットキーの同時押し
ただし、「Ctrl+C」キーのコピーや「Ctrl+V」キーの貼り付けなどの既存から存在するショートカットキーと重複するキーは設定できません。
そのため、「Ctrl+C」キーでマクロのショートカットキーを設定しようとしても、「Ctrl+Shift+C」キーに自動で変更させられます。
設定したショートカットキーを変更したい場合は、「マクロの表示」画面の「オプション」から、ショートカットキーに利用するアルファベットを変更することができます。
マクロの実行ボタンを設定する方法
上記紹介した方法だと、「表示」タブもしくは「開発」タブから、「マクロの表示」⇒「実行」というステップを踏む必要があります。
しかし、「マクロの実行」は、挿入した図形に登録し、「マクロ」実行ボタンを作成することも出来ます。
まずは、「挿入」タブの図形から、どんな形でもいいので、図形を挿入し文字を入力します。
次に図形を右クリックして、右クリックメニューの「マクロの登録」ボタンを押します。
「マクロの登録」画面が表示されるので、ボタンとして登録させたいマクロを選択してから、「OK」ボタンを押せば、マクロ実行ボタンの完成です。
そうすると、挿入した図形をクリックすることで、マクロを実行することができるようになります。
セルの列幅や行の高さを調整すると図形のサイズが変わってしまいます。
図形の右クリックメニューから「図の書式設定」をクリックし、「図形のオプション」→「プロパティ」→「セルに合わせて移動やサイズ変更をしない」にチェックを入れて、サイズの変更を防止してください。
また、図形をクリックするとマクロが実行されるので、図形の位置を移動したい場合は、「ホーム」タブの「検索と選択」⇒「オブジェクトの選択」を使って図形を移動してください。
異なるExcelブックでマクロを実行する方法
マクロは、マクロを登録したExcelブックしか使えないわけではありません。
マクロを登録したExcelブックを開いておくと、それ以外のExcelブックにもマクロを利用することができます。
ポイント
マクロを登録していないExcelブックにもマクロは利用できる!
そのため、下の図のように、マクロを設定したExcelファイルと、マクロを利用するExcelファイルを分けて利用することもできます。
マクロのVBA(プログラム)を確認する方法
マクロを記録すると、マクロを実行するためのプログラム「VBA」が作成されるので、確認する方法を紹介します。
まず、「表示」タブ⇒「マクロの表示」から、「編集」ボタンを押してください。
そうすると、「Microsoft Visual Basic for Applications」というVBAの画面が表示されます。
この画面でマクロを編集することが可能となります。
マクロの初心者では、VBAを直接加工することはハードルが高い作業です。
ただ、VBAに記載のある「セル番号」「色コード」「セルの参照先」などは、どこに記述があるか分かりやすいと思うので、編集することはそれほど難しくありません。
VBAを使って自分だけのマクロを作成する方法
VBAが使えるようになってくると、自分だけのオリジナルのマクロを作成することができるようになります。
例えば、下のように、複数のセルを結合しても、すべての文字を残すことが出来るマクロなども作成可能です。
下のリンク記事で、誰でも簡単に上記のマクロを作成する方法を紹介しています。興味のある方は、参考にしてみてください。
マクロを利用する上での注意点
最後にマクロを利用する上での注意点を紹介します。
マクロが上手く作れない、マクロが動かない、という時などに参考にしてください。
マクロを上手に作成するためのコツ
マクロの記録を開始する前に、エクセルの操作を復習しておきましょう。
マクロに慣れた人や簡単な作業でも、以外に操作の手順を間違えがちです。
また、マクロを失敗せずに記録するためには、操作を事前にメモなどに書き出しておくと失敗しづらくなります。
マクロを上手く作成するために
・マクロの記録前に操作を復習する
・操作を事前に書き出しておく
・その手順で正しく加工できるか試しておく
・マクロの記録時は、ゆっくり焦らず操作する
マクロの実行は取り消せない
間違ってマクロを実行した場合でも、「元に戻す」コマンドや「Ctrl+Z」キーのショートカットで元に戻ることは出来ません。
そのため、マクロ実行前の状態にいつでも戻れるように、マクロ実行前には上書き保存するクセをつけるようにしましょう。
実行時の注意点
マクロは取り消しが不可能。マクロ実行前にファイルの上書き保存が必須です。
ファイルを開いたときの「セキュリティー警告」について
拡張子がマクロ有効ブックのExcelブックを開いた際、数式バーの上辺りに「セキュリティの警告」メッセージが表示されることがあります。
マクロを利用する場合は、「コンテンツの有効化」をクリックしてください。
もしこの表示を「×」ボタンで消してから、マクロを実行しても、以下のように「マクロが無効にされました。」という警告が表示されます。
この場合の対処方法は、Excelブックをもう一度開き直して、「コンテンツの有効化」をクリックしてください。
マクロが誤作動した場合
ごく稀に、マクロが誤作動をおこして、止まらなくなる現象が発生します。
こういった場合は、「Esc」キーを押してマクロの操作をストップしましょう。
それでも、動きを止まらない場合は、Excelを強制的にシャットダウンしましょう。
まず、「Ctrl」キーと「Shift」キーと「Esc」キーを同時押しして、「タスクマネージャー」を起動し、アプリの中から「Microsoft Excel」を選択して、「タスクを終了」ボタンを押します。
この場合、保存される前の更新データは失われてしまいますので、マクロ実行前は必ずデータを上書き保存するように心がけましょう。