年賀クイズの答え
ということで、答えは「VOICEROID」でした!
昨年、VOICEROIDを購入したのですが、キャラクタに声がつくだけでこんなに身近に感じられるようになるのか!と結構衝撃的でした。
ということで、今回のワードは「VOICEROID」にしました。
他にもこんなことをしてたりします。
youtu.be
さて、セル・オートマトンの解き方ですが…年末にこんな記事を書いたので載せておきます。今回は、これを利用すれば解くことができます。
qiita.com
ですが、解答用に改変するのは面倒だと思うので、解答用のVBAコードを載せておきますね。
シートには条件付き書式設定で、セルの値が1の時には紫、0の時には白になるようにしています。
Option Explicit Public Sub Click_実行() Dim r As Long, c As Long, tc As Long Dim self As Long Dim up_r As Long, down_r As Long, left_c As Long, right_c As Long Dim life_count As Long For r = 1 To 6 For c = 1 To 6 self = Cells(r, c).Value '自分自身の状態(紫:1, 白:0) up_r = r - 1 '「上」の行番号を計算 If up_r < 1 Then up_r = 6 End If down_r = r + 1 '「下」の行番号を計算 If down_r > 6 Then down_r = 1 End If left_c = c - 1 '「左」の行番号を計算 If left_c < 1 Then left_c = 6 End If right_c = c + 1 '「右」の行番号を計算 If right_c > 6 Then right_c = 1 End If life_count = Cells(up_r, left_c).Value + Cells(up_r, c).Value + Cells(up_r, right_c).Value life_count = life_count + Cells(r, left_c).Value + Cells(r, right_c).Value life_count = life_count + _ Cells(down_r, left_c).Value + Cells(down_r, c).Value + Cells(down_r, right_c).Value If self = 1 And (life_count = 2 Or life_count = 3) Then '紫セルの周りに2つか3つの紫セルがある場合は、そのセルは紫のまま self = 1 ElseIf self = 1 And life_count >= 4 Then '紫セルの周りに4つ以上の紫セルがある場合は、そのセルは白くなる self = 0 ElseIf self = 1 And life_count <= 1 Then '紫セルの周りに紫セルが1つ以下しかない場合は、そのセルは白くなる self = 0 ElseIf self = 0 And life_count = 3 Then '白いセルの周りに紫セルがちょうど3つある場合は、そのセルは紫になる self = 1 End If Cells(r, c + 10).Value = self Next Next Application.Wait Now() + TimeValue("00:00:02") '表示遅延用Wait tc = 11 For r = 1 To 6 For c = 11 To 16 If Cells(r, c).Value = 1 Then Cells(r + 8, c).Font.Color = RGB(255, 255, 255) Cells(r + 8, c).Interior.Color = RGB(132, 132, 255) Cells(8, tc).Value = Cells(r + 8, c).Value tc = tc + 1 Application.Wait Now() + TimeValue("00:00:01") '表示遅延用Wait Else Cells(r + 8, c).Font.Color = RGB(132, 132, 255) Cells(r + 8, c).Interior.Color = xlNone End If Next Next End Sub Public Sub Click_初期化() Range("K1:P6").Value = 0 With Range("K9:P14") .Font.Color = RGB(132, 132, 255) .Interior.Color = xlNone End With Rows(8).ClearContents Range("J8").Value = "答:" End Sub