excel-logo

仕事をしていると、結構同じ作業が必要なことが多い。

例えば私の場合、

ラボのデータベースから情報を取り出して、エクセルでダウンロードする。

このとき、色々なDx名がやたら長いので、全部省略したい。

e.g. Alzheimer's disease -> AD

でも、Dx名は十数種類あるので、全部書き換えてたら時間がかかる。

こんなときに、エクセルマクロで瞬時に作業を完成させると気分がアガる。

VBEで1から作らなくても簡単にできるので、今回はそちらの方を紹介。

マクロの登録

例えば下記データがあったとして、Dx名を Ctrl + H で全て書き換えたいとする。

1.リボン > View > Macros > Record Macro...

excel marco 2

新規マクロ登録画面が開く ▼

excel marco 3

2.名前や説明 etc. マクロオプションを設定し、レコードを開始する。

excel marco 4

左下のマークが「Ready □」になっていたらOK。

excel marco 5

3.マクロに登録したい作業をひたすら実行していく。

今回の場合は、名前を全て省略文字にしたいので、Ctrl + Hで名前を置換していく。

excel marco 6

置換後の画面 ▼

excel marco 7

4.作業が終わったら、画面左下の □ マークをクリックし、レコードを完了させる。

excel marco 8

マクロの編集

このままだと、余計な作業もレコードされていることが多いので、編集する。

1.VBE 画面の開き方3つ

(1) リボン > View > Macros > View Macros から

excel marco  9

Edit をクリック。

excel marco 10

(2) Alt + F8 でマクロ画面を開き、Edit をクリック。

(3) Alt + F11 でプログラム(VBE)画面を開く。</p>

excel marco 11

2.ここに記録されているコードの中から、要らない作業を消したり、入れ忘れていた作業を追加したりする。

例えば下記の場合、青でハイライトした部分は、セルの選択やコピーをしたときのものなので削る。

excel marco 12

内容が全部わからなくても、じっとコードを見ていると、何を意味しているのかだいたいわかってくる。

マクロの実行

登録が終わったら、あとはどのエクセルシートでもマクロ実行の指示を出すと、瞬時に実行してくれる。

例えば、下記シートを別にエクスポートして、このDx名を登録したマクロを使って変更したい場合 ▼

excel marco 13

1.Alt + F8 もしくは、リボン > View > Macros > View Macros でマクロ画面を開く。

excel marco 3

2.「Macros in: 」のところを 「This Workbook」にすると、そのワークブックだけ、

「All open Workbooks」にすると、その時点で開いている全てのワークブックにマクロが適応される。

そして、Run で実行。

excel marco 14

瞬時に全てのDx名が省略名に変換された ▼

excel marco 15

マクロのショートカット

マクロのショートカットを作っておくことも可能。

マクロの記録を行うときに、「Shortcut Key:」のところに「アルファベット or Shift + アルファベット」を入れて、ショートカットキーを設定する。

ただ、ここで注意すべきは、もともと割り当てられているショートカットキーの情報を上書きしてしまうこと。

例えば、Ctrl + C と入力してしまったら、Ctrl + C はコピーじゃなくてマクロ実行の指示になってしまう。

Excelや個人設定のショートカットにないアルファベットを割り当てる必要がある。

Excelのショートカットキーにない文字
    • q
    • e
    • l
    • m
    • j      etc...

……私の場合、色々ショートカットを個人設定しているので、マクロにショートカットを使うのは避けている。

保存の際の注意点

これは超大事!

普通に保存してしまうと、せっかく作ったマクロが消えてしまう。

私は最初に気をつけなかったので、1から全部作り直したという悲しい過去あり……

なぜ普通に保存するとマクロが消えるのか?

これは、システム保護のため。

VBAで書くマクロは高機能なので、コンピューターウイルスも作ることができる。

そのような悪意から身を守るため、そのExcelファイルにマクロ機能が含まれているかどうか判断できるよう、

マクロあり/なしを区別したファイルにしているらしい。

マクロが消えないように保存する方法

マクロが消えないように保存するためには、保存ファイル形式をエクセルマクロ有効ブック (*xlsm) (Excel Macro-Enabled Template)」で保存する。

こうすると、ファイルが Module とともに保存され、次に開いた時も、VBAProjectの中にちゃんと現れる。