【Excel】これ何するマクロだっけ? をマクロ名の変更で防ぐ:Tech TIPS
Excelで「マクロの記録」などを使ってマクロを作成した後、次回使う際に分かるようにマクロの名前を変更しようと思うと、どこにマクロの名前が設定されているのか分からないのではないだろうか。実は、マクロの名前を変更するのは意外と面倒だ。どうすれば間違いなくマクロの名前を変更できるのか、順を追って手順を紹介しよう。
対象:Office 2013/2016/2019/365
同じような名前で何のマクロなのか分からない!
マクロ記録で試行錯誤を繰り返すと、「Macro<数字>」という似た名前のマクロが数多くできてしまう。完成したマクロを区別できるようにするには、マクロの名前を変更して、実行内容に即したものにする必要がある。
「Microsoft Excel(エクセル)」でマクロを作成する際、デフォルトで表示される「Macro<数字>」の名前をそのまま使うことも少なくない。しかし、これでは名前からマクロの内容が分かりにくいため、後からリボンに登録したり、アドインなどにしたりする際に、分かりやすい名前に変更したくなることがある。しかし、名前の変更方法は少し複雑で、Visual Basic Editor(VBE)を使う必要もある。
なお、マクロ記録やマクロ用のリボンタブ(開発タブ)の表示などについては、ここでは解説しないので、以下の記事を参考にしてほしい。
- Tech TIPS「Excel自動化への第一歩 マクロ(VBA)を使えるようにする」
- Tech TIPS「プログラミング不要でRPA、「マクロの記録」機能でExcelを自動化する」
本Tech TIPSでは、基本的にVBAなどのプログラミングに関しての知識は前提としておらず、マクロ記録で作成したマクロだけを想定している。自作のマクロ(VBAプログラム)の場合とは前提条件が異なるため、やり方や状態などに違いがある点に注意してほしい。もっとも、プログラミングができるのであれば、この記事を読む必要はないだろう。
まずマクロの保存場所を確認する
Excelではマクロの保存場所は4種類あり、開いているブックの状態によっては、多数のマクロの「保存場所」が存在する可能性がある。マクロの名前を変更するには、該当のマクロがどこに記録されているのかを知っておく必要がある。マクロの保存場所の詳細については、Tech TIPS「違いが分かるExcel使いになるための『マクロの保存方法3種』」を参考にしてほしい。
具体的にいうとマクロの保存場所には、「開いているブック(保存前の状態)」「マクロ有効ブック(該当ブックを開いている場合)」「個人用マクロブック(有効にしている場合)」「アドイン(読み込み済みのもの)」の4つの可能性がある。
基本的にマクロの名前を変更するには、そのマクロを含むブックである上記の4つのどれかを開いている必要がある。上記の記事にあるように、VBAのプログラムを勉強しないで、「マクロの記録」のみでマクロを作成するのであれば、保存先は「個人用マクロブック」に限定することをお勧めする。他のブックに保存することも可能だが、結果的に管理が面倒になるだけだ。
個人用マクロブックは、明示的にブックを開くことなく、Excelの起動時に自動的に読み込まれた状態となる。これに対して、「マクロ有効ブック」はExcelに読み込まれた状態とする必要がある。このため、マクロを使うとき、マクロの名前を変更するときには、保存先に指定したブックを探す必要がある。しかし、「個人用マクロブック」は、1つしか存在せず、常に読み込まれているので探す必要がない。
以下では、「個人用マクロブック」にマクロを作成している、という前提で解説する。マクロの名前を編集する前に、同名マクロを間違って編集するなどの事故を防ぎ、マクロの保存場所を探しやすくするため、無関係なブックは全て閉じておくこと。
次にVBEを準備する
基本的にマクロ記録を使ってマクロを作成する場合、マクロを独立して表示するように設定すると、名前の変更などの作業がやりやすくなる(デフォルトでは、自分でプログラミングする人向けに、マクロは1つのページにまとめて表示されるようになっている)。
それには、Excelを起動したら、[開発]タブにある[Visual Basic Editor]を開く。[開発]タブを表示させる方法については、Tech TIPS「Excel自動化への第一歩 マクロ(VBA)を使えるようにする」を参照いただきたい。また、[Alt]+[F11]キーで、直接「Visual Basic Editor」を開くことも可能だ(キーボードショートカットの場合、[開発]タブの表示設定は不要)。
Visual Basic Editorを開く(1)
「Visual Basic Editor」(VBE)を開くには、[開発]タブを開き、左端の[Visual Basic]アイコンをクリックする。「開発」タブがない場合は、この記事のように設定すると表示できる。
VBEが起動したら、メニューの[ツール]−[オプション]を選択し、[オプション]ダイアログを表示する。[編集]タブの「ウィンドウの設定」にある「モジュール全体を連続表示」のチェックを外して「オフ」にする。これで、マクロはエディタウィンドウに1つ1つ独立して表示されるようになる。
通常、VBEは、プログラムを書くことを想定して、モジュール内のマクロを全て連続して表示するようになっている。しかし、プログラミングに慣れない場合、これでは、マクロとマクロの区切りが分かりにくい。そこで、この設定を「オフ」にすると、マクロが単独で表示されるようになり分かりやすくなる。
VBEでマクロを探す
VBEウィンドウの左側上にある[プロジェクト]ウィンドウ(ツリー表示)には、現在開いているブックや個人用マクロブック、アドインなどのブックファイルが「VBAProject〜」として表示されている。VBE内では、ブックと呼ばず「プロジェクト」という。VBAProjectは、プロジェクトのデフォルトの名称である。
この中から名前を変更したいマクロを含むブックを探して、「標準モジュール」の中にある「Module<数字>」を開く。1つのブックに複数のModuleが含まれていることもある。Moduleの数字はできた順番になるため、数字の大きなものが最近作られたModuleである。
このツリーで「Module<数字>」をダブルクリックすると、右側に[コード]ウィンドウが開く。なお、[コード]ウィンドウは子ウィンドウになっていて、標準ではVBE内で最大化されているか、場合によっては、ここに複数の子ウィンドウとして[コード]ウィンドウが表示されていることもある。
このときでも、ツリーで「Module<数字>」をダブルクリックすれば、該当の[コード]ウィンドウが最前面に表示される。あるいは、子ウィンドウのタイトルバーを見て、該当の[コード]ウィンドウをクリックして直接選択してもよい。
無関係と思われる[コード]ウィンドウは、閉じることもできるし、最小化しておくことも可能だ。複数のModuleある場合や保存場所(ブック)が多い場合には、[コード]ウィンドウを最大化せず子ウィンドウのままにした方が、1クリックでModuleを選択できるため扱いやすい。
名前を変更したいマクロのコードを表示する
VBEの[コード]ウィンドウは、子ウィンドウなので、複数のウィンドウが開いている状態になることがある。この場合でも、[プロジェクト]ウィンドウで目的の「Module<数字>」をダブルクリックすれば、該当する「Module<数字>」の[コード]ウィンドウが最前面に表示される。
ここでは例として「個人用マクロブック」にある「Module1」の「Macro7」の名前を「テスト用マクロ」に変えてみる。マクロ記録を使ってマクロを作成するとき、「マクロの保存先」として指定したブックにマクロは保存されている。ここでは、マクロ記録は、「個人用マクロブック」に保存されているとしたが、他のブックにマクロを保存したのであれば、そのブックを開き、VBEのプロジェクトウィンドウで該当ブック内のModuleを選択する必要がある。
それには、[コード]ウィンドウ右上の[プロシージャ]ボックスのドロップダウンリストから目的の「Macro7」を選択する。選択したModule内のマクロは全てここに表示される。もし間違ったプロジェクトを選択していなければ、別のModuleにあるはずだ。他のModuleをダブルクリックしてコードウィンドウを表示させる、あるいは直接Moduleの[コード]ウィンドウを選択して、[プロシージャ]ボックスを開いて目的のマクロを探す。
なお、[プロシージャ]ボックスの左側にある[オブジェクト]ボックスには、「(General)」が表示されている必要がある。
名前を変更したいマクロを選択すると、[コード]ウィンドウの先頭には「Sub 」から始まるマクロの名前(この例ならば「Macro7」)がある。この先頭の「Sub」と後続の半角スペースには手をつけずにそのまま残す。「マクロの記録」で作成したマクロなら「Sub Macro<数字>()」というパターンになっている。「()」内に何らかの記述があってもなくても、この部分には手をつけずそのまま残しておく。
マクロ名は、「Sub 」と「()」に挟まれた部分なので、ここを修正する。これでマクロ名が修正された。最後に修正したマクロを保存する。保存しないとマクロ名の変更は確定しない。VBEの[ファイル]メニュー先頭にある「<ブック名>を上書き保存」を選ぶか、ツールバーの[ディスク]アイコンをクリックする。[Ctrl]+[S]キーで上書き保存してもよい。これでマクロの名前が変更される。
注意すべきマクロ名の制限
マクロ名は、保存場所(ブック)内で重複してはならない。違うブックであれば重複してもよい。
またマクロ名の先頭は、アルファベットや漢字、全角片仮名、平仮名で始まらなければならない(数字は不可)。2文字目以降には数字とアンダーバーが利用できる。アンダーバー以外の記号文字は全角/半角ともに利用できない。
さらに、アルファベットの大文字/小文字は区別されず、全角のアルファベットとアンダーバー、数字は入力後に自動的に半角文字に変換される。このため入力後に、同じブック内の他のマクロと同じ名前にならないように注意が必要だ。
一般的には、マクロの動作や処理を示す名前を付けるとよい。他にも細かいルールがあるため、日本語を使っておくのが間違いないだろう。
マクロの名前をちゃんとしておくと、後の管理が楽になる。ただ、マクロ記録では試行錯誤を繰り返すことも多い。このため動作を確認した最終のマクロの名前を変更するのが効率的だ。
Copyright© Digital Advantage Corp. All Rights Reserved.