Nothing's Carved In Stone 『Spirit Inspiration』
(Nothing’s Carved In Stone 「Spirit Inspiration」)
アニメ『絶園のテンペスト』(2012)
上の動画はこのアニメのOPです。カッコよくて仕方がない。
アニメの方は、続きが気になって仕方がない。最後まで見ないと勿体ない。面白くて仕方がない。
さて、前回に引き続き、急に面白くなって仕方がなくなったExcel。条件付き書式をマクロで追加するという、大変、非効率的ことなのですが、そして仕事では絶対使わないテクニックなのですが、面白いのでもう少しやってみようかと思います。
今回はsysvbannerを使って、Excelのセル位置を決めて、数字を入力したら、banner数字が現れるような条件付き書式を作るマクロを作ります。
前回同様、マクロ記録で、Macro1を生成します。どのようにキー操作をしたのかは、マクロを見ればわかるので、省略します。
Sub Macro1() ' ' Macro1 Macro ' ' Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=0" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
次に、前回同様、置換して、test関数を追加します。
Sub test() 条件付き書式 Cells(1,2),"=$A$1=1" End sub Sub 条件付き書式(セル,条件) セル.FormatConditions.Add Type:=xlExpression, Formula1:=条件 セル.FormatConditions(セル.FormatConditions.Count).SetFirstPriority With セル.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 End With セル.FormatConditions(1).StopIfTrue = False End Sub
このあたりで一回、このマクロが動くかどうか試しておいた方がよいでしょう。
新規Excelを起動して、 A1に1を入力し、セルB1が赤色になればOKです。
上手くうごいたら、次はlinux。bannerコマンドを動かします。
takk@deb9:~$ banner `seq 0 9` ### # # # # # # # # # # # # # ### # ## # # # # # ##### ##### # # # ##### # # ####### ~省略~ ##### # # # # ###### # # # ##### takk@deb9:~$
これをPerlで加工してVBA用のマクロを作成することにします。
Perlのスクリプトです。
takk@deb9:~$ cat -n excel.pl 1 $y=0; 2 $n=1; 3 while(<>){ 4 chomp; 5 $y++; 6 $_=sprintf("%-7s",$_); 7 @a=split //,$_; 8 $x=0; 9 foreach(@a){ 10 $x++; 11 print "条件付き書式 Cells($y+1,$x+2), \"=\$A\$1=$n\"\n" if /#/; 12 } 13 if($y==8){$n++;$y=0} 14 } takk@deb9:~$
bannerコマンドと組み合わせて使うとこのように多量のソースコードが生成されます。
takk@deb9:~$ banner `seq 0 9` | perl excel.pl 条件付き書式 Cells(1+1,3+2), "=$A$1=1" 条件付き書式 Cells(1+1,4+2), "=$A$1=1" 条件付き書式 Cells(1+1,5+2), "=$A$1=1" 条件付き書式 Cells(2+1,2+2), "=$A$1=1" ~省略~ 条件付き書式 Cells(7+1,4+2), "=$A$1=10" 条件付き書式 Cells(7+1,5+2), "=$A$1=10" 条件付き書式 Cells(7+1,6+2), "=$A$1=10" takk@deb9:~$
これをVBAマクロとして実行すれば、bannerに合わせた条件付き書式が設定されます。
但し、1が0で10が9なので、計算式を一つ挟まないと数字がずれて表示されます。このように数式を使って調節すればよいです。
コメント