mugaxのなんでも情報局

いろんな分野について発信していきます。

チェスボードを作る。VBAとワークシート関数で。

f:id:mugax:20210624204432p:plain

■チェスボードを作る


Sub MakeChessBoard(boardArea As Range, myColor As Long)

    Dim r As Long
    Dim c As Long
    
    For r = 1 To boardArea.Rows.Count
        For c = 1 To boardArea.Columns.Count
            If (r + c) Mod 2 = 1 Then
                boardArea.Cells(r, c).Interior.Color = myColor
            End If
        Next
    Next

End Sub

'位置:M2から8行8列、色:RGB(256,0,0)で実行する
Sub test()

    Call MakeChessBoard(Range("M2").Resize(8, 8), RGB(256, 0, 0))

End Sub

■ワークシート関数で作る

f:id:mugax:20210624204510p:plain

 

8行8列を選択

条件付き書式のルールに次の数式を入力

=MOD((ROW()+COLUMN()),2)=1

行番号と列番号を足したものが奇数なら色を塗る

ボードの位置を変えると

=MOD((ROW()+COLUMN()),2)=0

と書いて、偶数なら塗るにしなければならない場合もある。

1つおきに塗るというルールを数式化できるかが攻略の鍵