これからエクセルマクロを勉強しようとする人にとって、マクロの編集は一つのカベです。
マクロというこれまで触ったことのないものを操作できるようになるのは決して簡単なことではありません。
しかし順序良く学んでいけば、難しいものではありません。
そこでエクセルマクロの使い方について、この記事で紹介をしていきます。
具体的には、以下のフローチャートに沿って解説をしていきます。
またマクロ編集に必要な以下の内容も解説していきます
マクロ編集1|使えるマクロをコピーして転用する
マクロ編集2|マクロの名前を変更する
マクロ編集3|要らないマクロを削除する
マクロ編集4|マクロを編集できないときの対処法
マクロ編集5|知っておきたいマクロ編集のテクニック
記事の後半では、マクロを使いこなせるようになるための詳しい勉強方法も紹介します。
目次
エクセルマクロVBAとは? イメージを掴む
マクロの使い方を学ぶにあたって、エクセルマクロVBAについてイメージがわかない人のために、以下の動画を用意しました。
マクロのイメージを掴みたい人はぜひご覧ください。
上記の動画で紹介している内容以外にも、マクロで出来ることは数多くあります。
以下の記事でマクロで出来ることをまとめていますので、読んでみてください。
マクロ作成方法には大きく3種類ある
マクロ作成方法2|参考になるマクロをコピペ
マクロ作成方法3|マクロのコードをスクラッチで作成
エクセルマクロの作成方法は上記の3つがあります。
マクロが書ける人ほど、上記の3つをうまく組み合わせながら、効率的にマクロを作成していきます。
3つについて以下で紹介していきます。
マクロ作成方法1|マクロの自動記録
マクロの自動記録とは、自分が行ったエクセル操作を記録しマクロのコードに翻訳してくれる機能です。
イメージとしては翻訳ソフトです。日本語を入力したら英語に変換してくれるアプリと同じように、エクセル操作を読み取って、機械がマクロのコードに変換してくれるのです。
以下に、マクロの自動記録のメリットやデメリットを記載します。
メリット |
・知識がなくてもマクロを作成できる ・数分の作業なら十分に自動化可能(報告書の体裁修正など) |
デメリット | ・複雑な処理ができない(最終行の自動調整、条件分岐) ・数十分を超える作業の自動化は難しい ・自動記録されたコードは分かりにくい |
マクロコードに自動変換してくれるのは大きなメリットです。
残念ながら、同時に複雑な操作は自動変換してくれません。
翻訳ソフトが日本語を完璧な英語にしてくれないのと同じように、マクロの自動記録もエクセル操作を完璧に再現してくれるとは限らないのです。
しかし複雑な処理はマクロ化してくれないとはいっても、マクロの自動記録簡単なマクロを作成することが可能です。
そのため、マクロに馴染みのない人はマクロの自動記録から学ぶのも一つの方法です。
この記事ではマクロの自動記録については詳しく扱いません。
もしマクロの自動記録について知りたい人は以下の記事をご覧ください。
マクロ作成方法2|参考になるマクロをコピペ
参考になるマクロをコピペとは、他人のマクロや過去に作成したマクロをコピペして使いまわすことです。
以下に、参考になるマクロをコピペのメリットやデメリットを記載します。
メリット |
・知識がなくてもマクロを作成できる ・複雑な処理を行うマクロをすぐに作成可能(ウェブの情報を取得など) |
デメリット | ・コピペしたマクロを自分で修正しないといけない ・マクロを読める知識が必要 |
マクロをコピペして使えば、効率的にマクロを作成できます。
しかし、コピペしてマクロを使う場合、どうしても編集作業が必要になります。
たとえば、複数のマクロをコピペする場合、それらをうまくつなげる必要があります。
そのため、コピペした後に自分でマクロが想定通りに動くように手直ししないといけないのです。
以下の記事でウェブ上のマクロをコピペするだけでは不十分な理由について、詳しく解説しています。
マクロ作成方法3|コードをスクラッチ(手書き)で作成
スクラッチとは手書きを意味し、自らタイピングしてマクロのコードを作成することを指します。
マクロのコードをスクラッチで作成するときのメリットやデメリットは以下です。
メリット | ・数時間の作業でも自動化可能 ・ウェブ、ワード、アウトルックなどと連携可能 ・自作のためメンテナンスしやすい |
デメリット | ・コードを理解し、自分で書けるレベルが必要 ・スクラッチで書けるようになる前に挫折する可能性がある |
コードをスクラッチで書けるようになると、複雑な作業でもマクロで効率化できるようになります。
当然、マクロの自動記録でも仕事の効率化は可能です。
しかしマクロの自動記録には限界があり、簡単な処理しか効率化できません。
実際に、業務でマクロを使ってきた経験から言うと、数十分~数時間レベルで仕事を効率化したいならスクラッチで書けるレベルが必要です。
マクロの自動記録では、IF文による条件分岐やFor~Next文による繰り返し処理ができないことが原因です。
そのため、もし数時間レベルで仕事の効率化をしたいなら、スクラッチで書けるようになることを目指す必要があるのです。
以下の記事でスクラッチで書けるようになることの意義について紹介しています。
当然ですが、私はこの記事を読んでいるあなたにスクラッチで書けるようになってほしいと考えています。
そのため、この記事ではスクラッチでマクロを書くために必要なマクロの編集方法について詳しく解説しています。
エクセルマクロの使い方を3ステップで解説|起動や作成から実行まで
マクロの作成から実行までのやり方は、上の動画で詳しく解説をしています。
動画でイメージをつかみたい人はぜひご覧ください。
動画が苦手な人は以下でも詳しく説明をしていますので、このまま読んでいってください。
それでは、エクセルマクロの使い方を3ステップで解説していきます。
以下のフローチャートに沿って作業することで、マクロを実行することが可能です。
ステップ1|マクロの起動
エクセルを立ち上げて、VBE(Visual Basic Editor)と呼ばれるマクロの編集画面を起動します。
ステップ1-2|エクセルの「開発」タブを表示させる
ステップ1-3|VBEを立ち上げる
ステップ1-4|VBEを表示メンテナンスする
ステップ1-1|エクセルを立ち上げる
デスクトップのエクセルアイコンをクリックして、エクセルを立ち上げます。
このときエクセルのリボンに「開発」ボタンがすでに表示されているかどうか確認します。
→ステップ1-3
エクセルの「開発」ボタンがない場合
→ステップ1-2
ステップ1-2|エクセルの「開発」タブを表示させる
エクセルリボンに「開発」ボタンを表示させるには、以下の手順で操作を行います。
手順2|「オプション」をクリック
手順3|「リボンのユーザー設定」をクリック
手順4|「開発」にチェックを入れる
手順5|「OK」をクリック
手順4|開発にチェックを入れる
手順5|OKをクリック
手順1-5まで操作を終えると、「開発」ボタンが表示されます。
ステップ1-3|VBEを立ち上げる
手順2|「Visual Basic」ボタンをクリック
「Visual Basic」ボタンをクリックすると、以下のようにVBEが起動します。
マクロ初心者の人が上記の手順でVBEを開くと以下のようにVBEが灰色で、何も表示されていない場合があります。
→ステップ2
VBEのパーツが3つ表示されていない場合
→ステップ1-4
VBE起動のショートカットキー
VBEの起動は、実は以下のショートカットキーでも可能です。
ショートカットキー | 内容 |
---|---|
[Alt] を押しながら [F11] | VBE(Visual Basic Editor)を起動 |
このショートカットキーを使えば、ステップ1-2とステップ1-3を省略して、キーボードだけでVBEを立ち上げることが可能です。
覚えておくと便利です。
ステップ1-4|VBEを表示メンテナンスする
以下の方法で、表示されていない部分を表示できます。
ちなみに、以下のショートカットキーでも表示することができます。
[2] コード|[F7]
[3] プロパティウィンドウ|[F4]
ステップ2|マクロの作成
マクロのコードを作成していきます。
ステップ2-2|コードを書く
ステップ2-1|標準モジュールを作成する
手順2|「標準モジュール*」をクリック
*標準モジュールとは、実際にコードを作成するところです。
そうすると、「標準モジュール」が作成されます。
この標準モジュールにコードを作成し、実行することでマクロを動かすことができます。
ステップ2-2|コードを書く
ステップ2-1で作成した標準モジュールにマクロのコードを書いていきます。
マクロのコードを書く時のコツは、手順書をイメージすることです。
なぜならマクロとはコードに従ってエクセルが作業を代行することだからです。
実際、新入社員にマニュアルを渡して、「手順書にしたがって仕事をしてください」と伝えるのと同じで、エクセルにコードを渡して、「コードにしたがって処理をしてください」とやっているのと同じです。
新入社員に渡すマニュアルと異なるのは、日本語かマクロ語かどうかの差です。
そのため、「コード」=「エクセルが理解できる言語(マクロ語)で書く手順書」と理解しておきましょう。
それでは、コードを書いていきます。
手順2|必要情報を入れ込む
手順3|コードを書く
ここでは、コードを書きたい標準モジュールとして「Module1」を選択します。
必要情報として「Option explicit」と「コードの件名」の2つを記載します。
まずは、以下のように「Option explicit」を記載します。
次に、以下のように「コードの件名」を記載します。
ここでは、コードの件名を「sample1」としました。
ここからコードを書いていきます。
今回は、簡単なマクロとして以下を作成します。
Range(“A1”).Value = 5
Range(“A3”).Value = 15
End Sub
コードの説明をしておくと以下です。
→コード開始の合図
→セルA1の値を5にする
「.」は「~の」を意味する
「=」は「左辺を右辺にする」を意味する
→セルA2の値を15にする
→コード終了の合図
このコードを以下の標準モジュールに記載します。
補足|実用的なコードを作成するためのテクニック
上記で、セルA1に5やセルA3に15を入力するコードを作りました。
基礎レベルの説明のため仕方がありませんが、これはまったく実用的ではありません。
そこで、仕事で使えるコードを作るために必要なテクニックを以下で紹介します。
方法2|マクロの自動記録を使う
方法1|コードをコピペする
コードのコピペは重要です。
なぜなら時間短縮できるからです。似たようなコードを使いまわすことで、作成時間を削減できます。
コピペする情報は主に以下です。
1.ウェブサイトに公開されているコード
2.手元にあるエクセルに保管されているコード
私の場合は、上記の2つを活用してマクロを書くことが多いです。
ただし、コピペしたコードがそのまま使えることはほとんどありません。
そのため「方法1|コードをスクラッチで書く」でコピペしたマクロに変更を加えながら完成させます。
ウェブサイトで公開されているコードは、標準モジュールにコピペして使用します。
なお、ウェブにはサンプルコードが数多く公開されています。
初心者のうちは、それらをうまく活用するのもオススメです。
以下の記事でサンプルコードを紹介しています。
方法2|マクロの自動記録を使う
既に一度説明しましたが、マクロの自動記録とは、エクセル操作を自動でコードに変換してくれる機能です。
この機能を使うことで、マクロを作成することができます
マクロの自動記録を使う方法は、以下の記事で詳しく解説しています。
マクロを効率的に作成するコツやテクニック
マクロを作成するときには、覚えておくとトクするテクニックがあります。
たとえばマクロの設定です。
初期設定では以下のようにコードが黒いですが、設定を変更して色を付けるとコードの視認性が上がります。
これにより、コード作成のミスを減らすことができます。
このようなテクニックを知らないだけで、作成に時間がかかったり、思わぬミスをしてしまったりすることになります。
以下の記事で、マクロを効率的に作成するためのテクニックを紹介しています。
ステップ3|マクロの保存・実行
作成したマクロを実行するステップです。
マクロを実行する前には、コードを保存しておきます。
理由はエラーが起きて、作成したコードが消えてしまうリスクがあるからです。
そこで、マクロを保存してから実行します。
3-1. コード(マクロ)を保存する
注意点|拡張子「.xlsm」で保存
保存方法|[Ctrl] + [S]でファイル保存
作成したマクロの保存は、エクセルを「上書き保存」もしくは「新規ファイルで保存」の操作を行います。
新規ファイルで保存|[F12]」
マクロの保存ということで、特別な操作は不要です。
ただし、新しく作成したマクロを保存する場合は、以下のとおり拡張子に注意が必要です。
注意点|拡張子「.xlsm」で保存
マクロを保存するときは、エクセルファイルの拡張子を「.xlsm」にすることを推奨します。
拡張子xlsmでファイルを保存するように設定を変更する
以下で、マクロが保存されるファイル形式に変更する方法を紹介します。
[1] 「ファイル」をクリック
[2] 「オプション」をクリック
[3] 「保存」をクリック
[4] 「ファイルの保存形式(F)」をクリック
[5] 「Excelマクロ有効ブック(*.xlsm)」をクリック
[6] 「OK」をクリック
この変更を行えば、エクセルファイルの保存形式が「.xlsx」から「.xlsm」に変更されます。
これで、エクセルを閉じても、マクロが保存されるようになります。
なお、xlsxでマクロを作成したり編集したりすることは可能です。
しかし、xlsxで作成したマクロは保存されません。注意しましょう。
3-2.マクロを実行する
実行方法2|F5
実行方法3|F8
実行方法4|エクセル上に設置したボタン
実行方法5|ショートカットキー登録
作成したマクロを実行する方法について一つずつお伝えします。
実行方法1|実行ボタン
手順2|「実行」をクリック
そうすると、マクロによってエクセルに値が出力されます。
このとき、「ステップ1|動かしたいコード(プロシージャ)にカーソルを合わせる」には注意が必要です。
もし、Sample2にカーソルを合わせると、Sample2のマクロが起動します。
また、Sample1とSampl2の外にカーソルを合わせると、以下のようにどのマクロを実行するか聞かれます。
この方法でもマクロを実行することは可能ですが、マウスでクリックするのは面倒です。
そのため、私はこの方法でマクロ実行はしません。
実行方法2|F5:マクロを実行
マクロ実行のショートカットキー[F5]で、マクロを実行する方法です。
ステップ2|キーボードの[F5]を押す
そうすると、マクロによってエクセルに値が出力されます。
注意点としては、方法1と同様で、「ステップ1|動かしたいコード(プロシージャ)にカーソルを合わせる」ことです。
実行方法3|F8:ステップイン
ステップインとは、プログラムコードを1行ずつチェックしていく方法のことです。
マクロのステップインのショートカットキー[F8]で、マクロを一行ずつ実行する方法です。
この方法はプログラムのエラーを見つけるために行います。
たとえば、マクロを動かしたとき、想定と異なる結果になる場合があります。
その場合にプログラムを1行ずつ動かし、結果を1行ずつ確認しながらチェックするのです。
このときに使うのが、F8:ステップインです。
F8の使い方を紹介します。
ステップ2|キーボードの[F8]を押す (1回押すとプログラムが1行分進みます)
[F8]を押すと、マクロがステップインで動き始めます。
上記のように[F8]を押すたびに、マクロが一行ずつ動いていきます。
そうすると、赤枠で囲んだ部分に値が出力されていくのが分かります。
これを確認することで、プログラムが想定通りに動いているか確認することができます。
実行方法4|エクセル上に設置したボタン
エクセル上にボタンを設置し、マクロを登録する方法を動画で解説しています。
詳しくは上記の動画をご覧ください。
動画が苦手な人のために、以下で文章と画像で説明をしています。
文章で理解したい人は以下をご覧ください。
手順1|エクセルの「開発」をクリック
手順2|エクセルの「挿入」をクリック
手順3|「ボタン」をクリック
手順4|エクセルにボタンを設置
手順5|ボタンに登録したいマクロを選択
手順6|「OK」をクリック
手順2|エクセルの「挿入」をクリック
手順3|「ボタン」をクリック
手順6|「OK」をクリック
ボタンを押すと、以下のようにマクロを実行することができます。
実行方法5|ショートカットキー登録
ショートカットキーにマクロを割り当てることも可能です。
たとえば、私はエクセル上で [Ctrl] + [Shift] + [y] を同時に押すと、選択しているセルを黄色に塗りつぶすマクロを設定しています。
この方法については、以下の動画で設定方法を紹介しています。
動画が苦手な人は以下の記事を読んでも勉強することが可能です。
マクロ編集1|マクロVBAの標準モジュールをコピーする
マクロVBAの標準モジュールをコピーする方法を紹介します。
標準モジュールをコピーする以下の2つがあります。
コピー方法2|他のエクセルブックにマクロをコピーする
それでは、一つずつ解説していきます。
コピー方法1|同じエクセルブック内でマクロをコピーする
同じエクセルブック内でマクロをコピーする方法を紹介します。
手順2|コピーしたい範囲を選択
手順3|コピーをクリック( ショートカットキー [Ctrl] + [C] でも可能)
手順4|コピー先の標準モジュールをクリック
手順5|コピー先に貼り付ける
コピー方法2|他のエクセルブックにマクロをコピーする
他のエクセルブックにマクロをコピーする方法を紹介します。
手順2|クリックしたままコピー先へマウスをドラッグする
Book2に移動したら、マウスから手を離します。そうすると、以下のように異なるエクセルブックへ標準モジュールをコピーできます。
マクロ編集2|複数のマクロ(標準モジュール)を作成する方法
マクロVBAの標準モジュールを複数作成する方法を紹介します。
手順2|「標準モジュール」をクリック
そうすると、以下のように複数の標準モジュールを作成することができます。
マクロ編集3|マクロの名前を変更する
マクロの標準モジュールを作成すると自動で「Module1」という名前が付けられます。
「Module1」という名前の標準モジュールが存在するときは、「Module2」が作成され、「Module3」と数値が増えていく形で自動で命名されます。
しかし「Module1」や「Module2」という名前では、そのマクロに何のコードが記載されているのか分からなってしまいます。
そこでマクロの名前を変更する方法を紹介します。
手順1|名前変更したい標準モジュールをクリック(マウス左)する
手順2|「Module1」と記載されたテキストボックスをクリック
手順3|好きな名称に変更
マクロの名前変更の手順
以下のように名前が変更される
マクロ編集4|要らないマクロを削除する
不要になったマクロを削除する方法を紹介します。
ステップ2|「XXXX(*)の解放」をクリック
ステップ3|「いいえ」をクリック
*XXXXはマクロの名前
マクロの削除手順
ステップ2|「Module1の解放」をクリック
ここでは、「Module1」という名前のマクロを削除する場合を例にしています。
これで「Module1」の標準モジュールを削除できます。
なおステップ3で「はい」をクリックすると、マクロのプログラムを「.bas」という拡張子で保存することができます。
ただ、これはマクロに慣れてから覚えれば問題ありません。
そのため、初心者の内は「いいえ」を選択してマクロを削除すると覚えておけば十分です。
マクロ編集5|マクロが編集できないとき・有効化できないときの対処法
マクロを使おうとするとき、どうしてもマクロを編集したり有効化したりできないときがあります。
これらに関しては、以下の記事で詳しく解説しています。
エクセルマクロを詳しく知りたい人へ
エクセルマクロVBAを使いこなせるようになりたい人は、以下の記事で勉強することができます。
エクセルマクロを編集アレンジできるようになりたいなら
この記事では、エクセルマクロの使い方の基礎について紹介しました。
ここで紹介した手順にしたがえば簡単なマクロを作成可能です。
しかしここで紹介した内容では実務で使えるレベルにはなれません。
たとえば、「複数のエクセルファイルで処理をしたい」や「日付毎に条件を変えたい」というレベルの処理ができないと実務では使い物になれないのです。
このような要望を満たすには、マクロを勉強して自力でマクロを編集できるようになる必要があります。
もし、自力でマクロを編集できるようになれば、今より仕事の効率はグッと上がります。
実際、私も自力でマクロを書けるようになってからは、仕事の生産性が一気に上がりました。
他の人が30分~1時間かけて行う仕事が、ボタン一つで終わらせることができるようになったのです。
その結果、周囲からの信頼も増し、仕事で高い評価を得られるようになりました。
詳しくは以下で紹介しています。
まずは無料でマクロを勉強してみる
ここで多くの人がやりがちなミスがウェブや書籍で独学で勉強しようとすることです。
ウェブや書籍を使えば、マクロを習得できると考えているのです。
しかし、仕事で使えるマクロを習得したいなら、仕事で使える部分に特化した教材で学ぶことをお勧めします。
なぜなら、ウェブや書籍には仕事に関係しない部分まで提供していることが多いからです。
例えば、マクロ初心者なのに配列を学ぼうとする人がいます。実は配列なしでも仕事で使えるマクロを書くことは可能です。
しかし、マクロ初心者ほど「全ての知識が必要だ」と考えて、無駄な学習に時間を使ってしまうのです。
詳しくは、こちらの記事で紹介しています。
マクロ初心者がやりがちなミス
そこで、私がお勧めするのは仕事に直結するマクロ教材です。とくにお勧めするのは、こちらの無料オンライン動画です。
なぜなら、仕事に直結する部分に絞って、エクセルマクロを学ぶことができるからです。
マクロの作り方・考え方から解説しているので、教材をしっかり学べばここで紹介したマクロをゼロから書けるようになります。
マクロ初心者が、仕事に直結したいマクロを学ぶなら、まずはこちらの無料オンライン動画を試すのがいいです。
興味がある人は、まずは無料でエクセルマクロの勉強を始めてみてください。
もっと学びたいと感じたら、さらに深く勉強をしてみることをお勧めします。