アニメ『メルヘン・メドヘン』
魔法少女アニメですね。原書と言われる魔法の本に選ばれて魔法少女になるようです。本の虫の主人公は魔法の訓練中っぽいです。
ソフトウェアのツールは、ほとんど魔法のツールだなあと思います。プログラマーになりたての頃に、初めて魔法だと感じたのが、テキストエディタのキーボードマクロ。今ではcoreutilsやスクリプト言語でテキスト整形するやり方の方が早いので、あまり使わなくなったのですが、キーボードマクロを使いまくっていた頃がありました。マクロ実行時間に時間が掛かっていたにも関わらず、当時はキーボードマクロこそが最大の効率化であると信じてました。実行中の待ち時間も、隣の人にこのモニタできらめく魔法を自慢するために、わざとお菓子を食べながらくつろいでみたりして。まあ恥ずかしい時期がありました。
テキストエディタのキーボードマクロは滅多に使わなくなりましたが、Excelのマクロ記録はよく使うようになりました。関数リファレンスを読むのが面倒な時に、マクロを自動生成するため使います。
今回はExcelマクロを作ります。
「Excelで集計の正の字」で作った「正」の字を描く条件付き書式ですが、たくさん作る場合に面倒なので、マクロ化します。そもそも条件付き書式ではなく、マクロで「正」の罫線を引けば簡単なので、どうしても条件付き書式で作りたい時にぐらいしか使えません。
1. Excelを新規に起動したら、「Excelで集計の正の字」と同じく、A列幅を10、他の列幅は2に設定します。
2. 「Alt」+wmr マクロの記録ダイアログを表示。
3. 「Enter」 マクロの記録を開始します。
4. 正の一番上の線についてだけ条件付き書式を設定します。B1~E1を選択して、だけ「Excelで集計の正の字」で実施したように条件付き書式を追加しておきます。
5.「Alt」+wmr マクロの記録を終了します。
6. 「Alt」+wmve 記録したマクロを編集します。
VBE(VB Editor)でこのようなプログラムが表示されました。
これを改造していきます。まずは関数化と、変数化。変数はなるべく日本人には読みやすい日本語を使っていきます。英語の方が読みやすい場合は英語のままが良いでしょう。
Sub Macro1() ' ' Macro1 Macro ' ' Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A$2>=1" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Borders(xlBottom) .LineStyle = xlContinuous .TintAndShade = 0 .Weight = xlThin End With Selection.FormatConditions(1).StopIfTrue = False End Sub
7. 上記の元ソースから、以下4つを変更します。
Macro1 → 条件付き書式追加
Selection → セル
“=$A$2>=1” → 条件
“xlBottom” → 罫線位置
修正後ソースです。
Sub 条件付き書式追加(セル,条件,罫線位置) ' セル.FormatConditions.Add Type:=xlExpression, Formula1:=条件 セル.FormatConditions(セル.FormatConditions.Count).SetFirstPriority With セル.FormatConditions(1).Borders(罫線位置) .LineStyle = xlContinuous .TintAndShade = 0 .Weight = xlThin End With セル.FormatConditions(1).StopIfTrue = False End Sub
次にこれを使うマクロ本体を作ります。
sub test1() 条件付き書式追加 Range("B1:E1"),"=$A$2>=1",xlBottom 条件付き書式追加 Range("C2:C5"),"=$A$2>=2",xlRight 条件付き書式追加 Range("D3:D3"),"=$A$2>=3",xlBottom 条件付き書式追加 Range("B4:B5"),"=$A$2>=4",xlRight 条件付き書式追加 Range("B6:E6"),"=$A$2>=5",xlTop end sub
改造したプログラムは、テキストエディタへ張り付け等して、テキストファイルとして保存しておきます。
8. Excelを一端終了し、再度まっさらな状態でExcelを起動します。
9. Excelが起動したら、「Alt」+「F11」でVBEを起動し、「Alt」+imで、標準モジュールを挿入します。
10. テキストファイルに保存した改造プログラムを貼り付け後、「Alt」+qで、VBEを終了。
11. 「Alt」+wmv マクロの記録ダイアログを表示し、「ENTER」で、条件付き書式が追加されます。
「正」の字の表示結果は前回と似たようなものなので省略します。
コメント