Excel シート上でのちょっとした操作を Excel VBA でプログラミングしてマクロを作り、ショートカットキーで実行できるようにしておくと便利です。
例えば
●セルの色を黄色く塗りつぶす
●ウインドウ枠を固定する
など、頻繁に行う操作です。
(何を頻繁に行うかは人によって異なると思います。)
今日は、まず上記の操作をマクロ化するための Excel VBA コードについて説明します。
そして、ショートカットキーで上記マクロを実行する方法と、
新規ファイルを開いた際に既にこれらのマクロを組み込んだ状態にしておくための設定についてお話しします。
1、今回取り上げる操作とプログラミングコード
さて、今回上記2つの操作を VBA でプログラミングした場合を例にとりますね。
セルの色を黄色く塗りつぶすマクロ
さて、セルの色を塗りつぶすことって多くないですか?
私の場合は、仕事がら数字のチェックをすることが多いです。
Excel シートに入力した数字を後でチェックしなければならない場合、チェックが完了したものを黄色く塗りつぶしていきます。
(チェックが全て終わったら色は消します。)
この塗りつぶし作業には既定のショートカットキーはありません(塗りつぶしなしにする場合は Alt → H → H → N でできます)。
セルを選択して、ホームタブのアイコンをクリックして塗りつぶしていかなければなりません。
(色は▼を押せば選択できます)
塗りつぶしの操作をたくさん行う場合には、マウス操作よりもショートカットキーで実行できたらいいなぁ って思いませんか?
そこでセルを黄色く塗りつぶす操作をマクロ化して、ショートカットキーで実行できるように設定可能です。
セルの色を黄色く塗りつぶすマクロの VBA コード
VBA コードを以下に示します。
Alt + F11 で VBE(エディタ)を起動して標準モジュールに書き込みます。
1 2 3 4 5 6 7 8 9 |
Sub Change_Yellow() If Selection.Interior.ColorIndex > 0 Then Selection.Interior.ColorIndex = 0 Else Selection.Interior.ColorIndex = 6 End If End Sub |
VBA コード説明
Change_Yellow プロシージャに全てのコードを書き込んであります。
シート上のセルを選択した状態では Selection は選択しているセルのことを意味します。
※Selection は Application オブジェクトの Selection プロパティという位置づけです。
Interior オブジェクトはセルの情報を管理するオブジェクトで、ColorIndex プロパティはセルの色を番号で指定するためのプロパティです。
とすることで選択したセルの色を指定した色番号にすることを意味します。
色番号は 0 〜 56 まであります。
0 は塗りつぶしなし
6 は黄色
となります。
*1 ~ 56 までは色が割り当てられています。
Selection.Interior.ColorIndex = 0
で「選択したセルの色を塗りつぶしなしにしなさい!」と指示していることになります。
また
Selection.Interior.ColorIndex = 6
で「選択したセルの色を黄色にしなさい!」と指示していることになります。
1 2 3 4 5 |
If Selection.Interior.ColorIndex > 0 Then Selection.Interior.ColorIndex = 0 Else Selection.Interior.ColorIndex = 6 End If |
IF 文を使って上記のように記述することで
選択したセルの色番号が 0より大きければ(選択したセルが塗りつぶしされていれば)、セルの塗りつぶしをなしにし
それ以外の場合(セルが塗りつぶしなしの場合)は、セルの色を黄色にする
ということになります。
ウインドウ枠を固定するマクロ
次にウインドウ枠を固定するマクロを紹介しておきます。
「ウインドウ枠の固定」の操作については、こちらの記事を参考にして下さい↓
ウインドウ枠を固定するマクロのVBA コード
VBA コードを以下に示します。
1 2 3 4 5 6 7 8 9 |
Sub Window_Fix() If ActiveWindow.FreezePanes = False Then ActiveWindow.FreezePanes = True Else ActiveWindow.FreezePanes = False End If End Sub |
VBA コード説明
ActiveWindow はアクティブになっているウインドウを意味します。
※ActiveWindow は Application オブジェクトの ActiveWindow プロパティという位置付けです。
今現在開いている(アクティブな) Excel シートが該当しますね。
とすることで「アクティブな Excel シートのウインドウ枠を固定しなさい!」と命令していることになり
とすることで「アクティブな Excel シートのウインドウ枠の固定を解除しなさい!」と命令していることになります。
1 2 3 4 5 |
If ActiveWindow.FreezePanes = False Then ActiveWindow.FreezePanes = True Else ActiveWindow.FreezePanes = False End If |
IF 文を使って上記のように書くことで
アクティブな Excel シートのウインドウ枠の固定をしていない場合には、ウインドウ枠を固定し
ウインドウ枠の固定をしていふ場合には、ウインドウ枠の固定を解除する
ということになります。
2、マクロへのショートカットキーの割り当て
さて、上記のようにちょっとした操作をマクロにしましたが、これを簡単に実行できるようにすることを忘れてはいけません。
ショートカットキーを割り当てるとすぐに実行できて便利です。
Alt + F8 を押すとで以下のボックスが出てきます。
てここでショートカットキーの割り当てができます。
マクロを選択した状態で「オプション」をクリックし、キーを入力します。
設定できるショートカットキーには必ず Ctrl キーが入ります。
Shift キーを押しながらアルファベットキーを押せば
Ctrl + Shift + アルファベット
という組み合わせのショートカットキーとなります。
今回はセルの色を黄色く塗りつぶすマクロ(Change_Yellow)にショートカットキー「Ctrl + Shift + A」を割り当て
ウインドウ枠の固定をするマクロ(Window_Fix)にはショートカットキー「Ctrl + Shift + D」を割り当てています。
上記の割り当てをした理由は、左手だけで押せる位置にあるキーだからです。
このようにマクロを作ってショートカットーを割り当てることで、数字をチェックする際にはいちいちマウスでクリックしなくても良くなります。
また、ウインドウ枠の固定もマウスで操作する必要がなくなりますね。
(一応デフォルトのショートカットキーで Alt → W → F → F というのもありますがちょっと長いですね)
3、Excel マクロ有効テンプレートの使い方
さて、Excel シートを使う目的によっては最初からこれらのマクロが組み込まれたシートを使えたら便利ですよね。
同じコードを新規でファイルを作るたびに入れるのは大変です。
白紙の状態のシートに上記のマクロを入れ込んでから、「名前を付けて保存」で保存先として「ドキュメント」の「Office カスタムテンプレート」を選択しましょう。
ファイルの種類を Excel マクロ有効テンプレート(xltm)として保存します。
これで次に Excel を立ち上げた際にマクロを組み込んだシートをテンプレートとして選択できるようになりました。
Excel を起動した直後に出てくる次の画面で「個人用」を選択しましょう。
そして、先ほど作った xltm ファイルを選択しましょう。
これで開いたシートには上記のマクロが組み込まれており、ショートカットキーで実行することができます。
4、まとめ
今回のマクロに限らず、日頃よく行うちょっとした操作をマクロ化してショートカットキーで実行できるようにしておくと便利です。
複数のマクロ有効テンプレートを準備しておいて、用途に応じて使い分けるのも良いかもしれません。