2013-01-05

数式が入ったセルの色を変えるマクロ

Macabucusで見つけたMacabucus Macroを試しにダウンロードしてみた。

http://macabacus.com/macros
(導入したのは無料のLite版)



色々便利な機能がついているとのことだったが、実際導入した結果、確認できたのは以下のような機能:


  • 表示形式を、桁区切りとかパーセンテージとかにできる機能
  • フォントの色や塗りつぶしの色を予め設定した色に変更できる機能
  • 上のセルの数式や、左のセルの数式をコピーできる機能
等。なんというか、わざわざこれを導入せずとも自分でできることばかり。
肩透かしを食らい、すぐアンインストールした。

ただ、唯一感心したのはAuto Colorという機能。これを使うと、選択した範囲とかシート全体とかについて、「ベタ打ちのセルのフォントを青に、数式が入っているセルのフォントを灰色に...」みたいな作業ができる。
この「ベタ打ちセルと数式セルの区別」はわりと便利(どのセルがインプットすべきセルで、どのセルがアウトプットセルかが区別できる)なので、結局、この機能だけ自分でVBAで作成してみた(コーディングは我流だけど...):

Sub AutoColor()
'
' AutoColor Macro
'数式セルのフォントを灰色に、それ以外のフォントを黒色にする

For Each a In Selection
If a.HasFormula Then
a.Font.Color = RGB(150, 150, 150)
Else
a.Font.Color = RGB(0, 0, 0)
End If
Next
End Sub

試してみたが、動作も一瞬で快適。

その昔VBAでIsFunctionという数式を定義して、「もしIsFunction=TRUEならフォントの色を変える」みたいな条件付き書式を設定したこともあったのだが、これだと残念ながらメモリを消費してファイル動作が非常に重たくなってしまったことから、今回のマクロは良さげ。早速個人用マクロブックに収録した。

Further Reading:

Excel Hack(Link)・・・VBAの本ではないが、この水準のスキルが求められる人は身に着けておきたい着想やtipsが豊富の必読書。