マクロとは
マクロとは、操作手順を記録し一瞬で処理させる便利な機能です。
よく行う操作を記録しておくことで時短にもなります。
また、マクロ処理をボタン一つで行うこともできます。
これを利用し、Excelが苦手な人でもボタンを押すだけで処理するフォーマットを作ることもできます。
マクロの記録はVBAというプログラミング言語を使います。
うわ、ハードル高そう…
VBAがわからなくても問題ありません。
いつもの手順で操作すれば、Excelが自動でVBAに変換してくれます。
VBA知らなくてもできるんだ…
今回設定するマクロと準備
薄緑のセル(身長・体重)入力後「BMIを表示」ボタンを押すと、右側にBMIが表示されるようなマクロを作ります。
下図は「BMIを表示」ボタンを押した結果です。(赤の部分)
マクロ以外にも便利な機能を使って見やすくします。(青の部分)
マクロ1:BMIを表示
・【D4】にBMIの数値を計算式により表示
・【E4】に肥満度を関数により表示
マクロ2:クリア
・【A4:B4】,【D4:E4】のデータを削除
便利な機能の設定
・【A4:B4】データを入力するとセルの色が消える設定
・【D7:E12】BMIの結果に相当するセルに自動で色がつく設定
まずはベースを作ります。
BMIの計算はマクロの中で行うので、ここでは計算式以外の表やボタンだけを作っておきます。
配置を揃えたり、フォントサイズやフォントの種類なども設定します。
BMIの結果は大きめのフォントがいいね!
ボタンのデザインについて詳しくはこちらの記事をご覧ください。
(目次:「レトロなオーディオアイコン」の作り方で作っています)
XLOOKUP(VLOOKUP)検索用データを非表示にする
マクロ記録時【E4】にXLOOKUP関数(VLOOKUP)を使います。
その時に必要となる検索用のデータを【C7:C12】に入力しておきます。
※D列の最小値を入力します。
【C7:C12】のデータは関数を使う上で必要になりますが、見る人には不要なデータです。
表示されているとカッコ悪い…
そこで【C7:C12】に入力されたデータを非表示にします。
関数に影響がないように、データは入れたまま見た目だけ消します。
【C7:C12】を範囲選択し≪ Ctrl + 1 ≫(テンキーではなく上の数字の1)でセルの書式設定ダイアログボックスを表示します。
[表示形式]タブ-「ユーザー定義」で種類のボックスに「;;;(半角セミコロン3つ)」を入力します。
これで表示されなくなりました。
データを確認したい場合は、セルをクリックして数式バーを見ましょう。
セルの非表示について詳しくはこちらの記事をご覧ください。
マクロ「BMIを表示」「クリア」を作る
1つ目の「BMIを表示」マクロを作っていきます。
マクロの記録
[表示]タブ-マクログループの[マクロ]ボタンから「マクロの記録」をクリックします。
マクロの記録ダイアログボックスが表示されます。
マクロに付ける名前を入力します。
今回は「BMIを表示」としました。あとはそのままにしておきます。
マクロ名:マクロに名前を付けます。
※記号やスペースは使えません。数字やアンダースコアは先頭のみ使えません。
ショートカットキー:入力するとマクロ実行時に使えます。
※既存のショートカットと同じものにした場合マクロが優先されます。
マクロの保存先:通常は「作業中のブック」のままにします。他でも使う場合は「個人用マクロブック」にします。
説明:マクロの簡単な説明などを入力します。
「OK」を押すと「記録終了」ボタンを押すまで、すべての操作がVBAで記録されていきます。
意味のないクリックもプログラム化されるのかー!
最初はセルをクリック、またはセル範囲を選択することろから始めます。
※いきなりボタンを押すところから始めるとマクロ実行時エラーになります。
マクロ:BMIを表示 操作手順
1.【D4】をクリックしてBMIを出す計算を入力
=ROUND(B4/(A4/100)^2,1)
2.【E4】をクリックして肥満度を表示する関数を入力
=XLOOKUP(D4,C7:C12,E7:E12,””,-1)
3.【A4】をクリック
4.「記録終了」ボタンをクリック
解説1.BMIを出す計算
BMIを出す計算は「=体重kg ÷ (身長m)^2 」です。
身長の単位をmにするために100で割ります(A4/100)。
=B4/(A4/100)^2
※ ^(べき乗)は半角英数の状態で「へ・~」のあるキーを押します。
BMIの結果を四捨五入して小数第一位まで表示したいのでROUND関数を使います。
=ROUND(B4/(A4/100)^2,1)
身長と体重のセルが空のため、計算式を入れるとエラーコードが表示されます。
実際は数字入力後に行うのでエラーコードは出ません。
ここでは気にせず次に進みましょう。
解説2.肥満度を表示する関数
肥満度を表示するにはXLOOKUP関数を使います。
【D4】のBMIを【C7:C12】で確認し、該当した行のE列を表示させます。
=XLOOKUP(D4,C7:C12,E7:E12,””,-1)
※XLOOKUP関数の代わりにVLOOKUP関数を使う場合はこちらです。
【D4】のBMIを【C7:E12】のマスタで確認し、該当するマスタの3列目を表示させます。
=VLOOKUP(D4,C7:E12,3)
BMIのセルがエラーのため、計算式を入れるとエラーコードが表示されます。
実際はBMI算出後に行うのでエラーコードは出ません。
ここでは気にせず次に進みましょう。
解説3.記録終了直前のクリック
一連の操作が終了したら最後にアクティブにしておきたいセルをクリックして「記録終了」を押します。
どこで終了してもいいわけじゃないの?
例えば、範囲選択した状態で終わるとどうでしょう。
確かに、それはカッコ悪い…
特にな指定がければ【A1】をクリックしてから終了すれば問題ありません。
次に入力する予定がある場合は、そのセルをアクティブにしておくと入力がスムーズになります。
今回は、身長入力のセル【A4】にしておきます。
解説4.記録終了
[表示]タブ-マクログループの「マクロ」ボタンから「記録終了」をクリックします。
ステータスバーのマクロの記録停止ボタンをクリックしても記録終了します。
これで一連の操作が記録されました。
記録終了を忘れるとどうなるの?
記録終了を押し忘れると記録され続けるので、マクロ実行時に終わることができません。
するとパソコン画面が動き続けてバグのような状態になります。
そうなった時は≪ ESC ≫キーを押せば停止します。
停止後マクロは削除して、また作り直しましょう。
マクロ「クリア」を作る
2つ目の「クリア」マクロを作っていきます。
[表示]タブ-マクログループの[マクロ]ボタンから「マクロの記録」をクリックします。
マクロの記録ダイアログボックスが表示されます。
マクロ名に「クリア」とします。あとはそのままにします。
「OK」を押すと記録が開始されます。
【A4:B4】と【D4:E4】のデータを≪ Del ≫キーで削除します。
セル【A4】をアクティブにして記録終了します。
(続けて入力することを考えて、今回は身長入力のセル【A4】で終了します。)
記録終了は、[表示]タブ-マクログループの「マクロ」ボタンから「記録終了」をクリックします。
または、ステータスバーのマクロの記録停止ボタンをクリックします。
これで一連の操作が記録されました。
マクロの実行
任意の身長と体重を入力し、マクロの実行をします。
※この段階ではまたボタンは使えません。
[表示]タブ-マクログループの「マクロ」ボタンのアイコンをクリックします。
(マクロボタンのドロップダウンリストから「マクロの表示」でも同様)
マクロダイアログボックスが表示されます。
実行したいマクロ名を選択し、右側の「実行」ボタンをクリックします。
BMIと肥満度が表示されました。
続けて、マクロ「クリア」も実行してみましょう。
データが消えれば成功しています。
失敗した場合は、マクロダイアログボックスでマクロ名を選択後「削除」を押して消し、またやり直します。
※バグ状態になった場合は≪ ESC ≫キーを押して停止し、マクロを削除してからやり直します。
オリジナルマクロボタンを作る
マクロを実行する度にダイアログボックスを立ち上げて選択して…では手間がかかります。
そこで、ボタン1つで実行する設定をします。
先にデザインしたボタンを使っていきます。
ボタンの作り方について詳しくはこちらの記事をご覧ください。
ボタンを右クリックし、一覧の中から「マクロの登録」をクリックします。
マクロの登録ダイアログボックスが表示されるので、登録したいマクロを選択し「OK」をクリックします。
クリアのボタンも同様にします。
図形にマウスポインタを合わせると指マークに変わります。
ボタンを押すとマクロが実行されるようになりました。
ボタンの図形を調整しようとするとマクロ実行しちゃうよ!
マクロ登録後に図形の編集をする場合は≪ Ctrl ≫キーを押しながらクリックします。
これで図形として触れるようになります。
データを入力するとセルの色が消える設定
【A4:B4】の入力してほしいセルに色をつけ、データを入力すると自動で色が消える設定を行います。
入力する場所が分かりやすいね!
【A4:B4】を選択し、[ホーム]タブ-スタイルグループ「条件付き書式」から「新しいルール」を選択します。
「新しい書式ルール」ダイアログボックスが表示されます。
1、ルールの種類から「指定の値を含むセルだけを書式設定」を選択し
2、次のセルのみを書式設定のドロップダウンリストから「空白」を選択します。
これで、空白のセルだけが条件となります。
3、右下の「書式」ボタンを押します。この条件を満たしたセルの書式を設定します。
「セルの書式設定」ダイアログボックスから[塗りつぶし]タブを押し、任意の色を選択します。
最後に「OK」を押し、もう一度「OK」を押して完了です。
BMI表のセルに自動で色がつく設定
【D7:E12】に、BMIの結果に相当するセルに自動で色がつく設定を行います。
見やすくなっていいね!
条件付き書式を設定をしたい範囲【D7:E12】を選択します。
[ホーム]タブ-スタイルグループ「条件付き書式」から「新しいルール」を選択します。
「新しい書式ルール」ダイアログボックスが表示されます。
1.ルールの種類から「数式を使用して、書式設定するセルを決定」を選択し
2.次の数式を満たす場合に値を書式設定のボックスに数式を入力します。
※アクティブセルに入れる数式を入力します。(ここでは【D7】)
=$E7=$E$4 「同じ行のE列のセルが【E4】のセルと同じ」であれば…という意味になります。
ボックスをクリックし【E7】をクリックすると=$E$7(絶対参照)となるので≪F4≫を2回押して=$E7(複合参照)にします。続けて=を入力し【E4】をクリックします。ここは絶対参照のままにします。
3.右下の「書式」ボタンを押し、この条件を満たしたセルの書式を設定します。
「書式」ボタンを押すと「セルの書式設定」ダイアログボックスが表示されます。
[塗りつぶし]タブにし、任意の色を選択します。
最後に「OK」を押し、もう一度「OK」を押して完了です。
$マークのついた絶対参照や相対参照について詳しくはこちらの記事をご覧ください。
マクロファイルは拡張子.xlsmで保存
マクロを使用したファイルはそのまま上書きしても有効になりません。
Excelは通常「.xlsx」という拡張子ですが、マクロ有効ブックは「.xlsm」になります。
名前を付けて保存する際にファイルの種類から「マクロ有効ブック」を選択します。
拡張子
.(ピリオド)から始まる半角のアルファベットで、ファイル名の最後につきます。
ファイルの種類を識別するもので、ファイルを開く時パソコンはこの拡張子に紐づけられたアプリケーションを開きます。
※通常パソコンでは拡張子は表示されませんが、エクスプローラーの表示タブから「ファイル名拡張子」にチェックを入れると表示されるようになります。
セキュリティの警告
パソコンで、初めて開くマクロ有効ブックは「セキュリティの警告」が出ます。
もし故意に悪いことをするマクロが使われていた場合実行するのは危険なため、アプリが一旦マクロを無効にします。
自分で作ったファイルや、安全なマクロだと分かっている場合は「コンテンツの有効化」をクリックします。
これでマクロが使えるようになります。
一度有効化すると、次回から同じパソコンで同じファイルを開いた時、セキュリティの警告は表示されなくなります。
マクロの編集
VBAの知識がないと編集は難しいですが、例えばクリックした場所を変更するというようなことは簡単にできます。
VBAでどのように記述されているのか見てみましょう。
[表示]タブ-マクログループの「マクロ」ボタンのアイコンをクリックします。
(マクロボタンのドロップダウンリストから「マクロの表示」でも同様)
マクロダイアログボックスが表示されます。
実行したいマクロ名を選択し、右側の「編集」ボタンをクリックします。
うわ、やばいの出てきたー!
VBAの編集画面です。
コードが分からなくても、範囲選択する箇所などは分かるのでちょっとした手直しはここで直接入力すれば編集可能です。
編集した時は≪ Ctrl + S ≫で上書きします。
一つ外側の右上のバツをクリックするとVBA編集画面が閉じて元のExcel画面が表示されます。