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なので、計算式を一つ挟まないと数字がずれて表示されます。このように数式を使って調節すればよいです。

コメント