Excelでフリップゲーム(セルをすべて裏返す)

VBAでゲームを作ります。すべてのセルを赤にしたらOKです。セルをクリックしたときにVBAが動くようにする方法

セルをクリックしたとき、VBAを動かすには

(1)シート名のところを右クリック

(2)VBA editorが立ち上がります。

(3)Worksheetを選択

(4)選択すると自動でコードが入ります。

あとは自分でコード入れるだけです。

Target.Addressの表示形式

MsgBox Target.Address

$B$2 $がつく絶対アドレスが取得できます。

$が邪魔なときは:

MsgBox Target.Column
MsgBox Target.Row

戻り値は、数値です。Cells(Row, Column)に入れるのが便利かも

VBAコード

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MsgBox Target.Address
    If Target.Address = "$D$4" Then
        Call col
    End If
    If Target.Address = "$C$3" Then
        Call sumi
    End If
    If Target.Address = "$C$5" Then
        Call sumi02
    End If
    If Target.Address = "$E$5" Then
        Call sumi03
    End If
    If Target.Address = "$E$3" Then
        Call sumi04
    End If
    
    If Target.Address = "$D$3" Then
        Call naka
    End If
    If Target.Address = "$C$4" Then
        Call naka01
    End If
    If Target.Address = "$D$5" Then
        Call naka02
    End If
    If Target.Address = "$E$4" Then
        Call naka03
    End If
    'Cells(2, 3).Select
    'Target.Select
End Sub

Public Sub col() '----3,3
    If Cells(4, 4).Interior.Color = vbRed Then
        Cells(4, 4).Interior.Color = -1
    Else
        Cells(4, 4).Interior.Color = vbRed
    End If '--------------------
    If Cells(4, 3).Interior.Color = vbRed Then
        Cells(4, 3).Interior.Color = -1
    Else
        Cells(4, 3).Interior.Color = vbRed
    End If '---------------
    If Cells(5, 4).Interior.Color = vbRed Then
        Cells(5, 4).Interior.Color = -1
    Else
        Cells(5, 4).Interior.Color = vbRed
    End If '--------------------
    If Cells(4, 5).Interior.Color = vbRed Then
        Cells(4, 5).Interior.Color = -1
    Else
        Cells(4, 5).Interior.Color = vbRed
    End If '-----------------
    If Cells(3, 4).Interior.Color = vbRed Then
        Cells(3, 4).Interior.Color = -1
    Else
        Cells(3, 4).Interior.Color = vbRed
    End If



End Sub

Public Sub naka()
    If Cells(3, 4).Interior.Color = vbRed Then
        Cells(3, 4).Interior.Color = -1
    Else
        Cells(3, 4).Interior.Color = vbRed
    End If '--------------------
    If Cells(3, 3).Interior.Color = vbRed Then
        Cells(3, 3).Interior.Color = -1
    Else
        Cells(3, 3).Interior.Color = vbRed
    End If '---------------
    If Cells(3, 5).Interior.Color = vbRed Then
        Cells(3, 5).Interior.Color = -1
    Else
        Cells(3, 5).Interior.Color = vbRed
    End If '--------------------
        If Cells(4, 4).Interior.Color = vbRed Then
        Cells(4, 4).Interior.Color = -1
    Else
        Cells(4, 4).Interior.Color = vbRed
    End If '--------------------

End Sub

Public Sub Aclear()
 For i = 0 To 2
    For j = 0 To 2
        Cells(i + 3, j + 3).Interior.Color = -1
    Next
Next

End Sub

Public Sub sumi()
    If Cells(3, 3).Interior.Color = vbRed Then
        Cells(3, 3).Interior.Color = -1
    Else
        Cells(3, 3).Interior.Color = vbRed
    End If
    If Cells(3, 4).Interior.Color = vbRed Then
        Cells(3, 4).Interior.Color = -1
    Else
        Cells(3, 4).Interior.Color = vbRed
    End If
    If Cells(4, 3).Interior.Color = vbRed Then
        Cells(4, 3).Interior.Color = -1
    Else
        Cells(4, 3).Interior.Color = vbRed
    End If

End Sub

Public Sub naka01()
    If Cells(4, 3).Interior.Color = vbRed Then
        Cells(4, 3).Interior.Color = -1
    Else
        Cells(4, 3).Interior.Color = vbRed
    End If '--------------------
    If Cells(3, 3).Interior.Color = vbRed Then
        Cells(3, 3).Interior.Color = -1
    Else
        Cells(3, 3).Interior.Color = vbRed
    End If '---------------
    If Cells(5, 3).Interior.Color = vbRed Then
        Cells(5, 3).Interior.Color = -1
    Else
        Cells(5, 3).Interior.Color = vbRed
    End If '--------------------
        If Cells(4, 4).Interior.Color = vbRed Then
        Cells(4, 4).Interior.Color = -1
    Else
        Cells(4, 4).Interior.Color = vbRed
    End If '--------------------

End Sub

Public Sub naka03()
    If Cells(4, 5).Interior.Color = vbRed Then
        Cells(4, 5).Interior.Color = -1
    Else
        Cells(4, 5).Interior.Color = vbRed
    End If '--------------------
    If Cells(5, 5).Interior.Color = vbRed Then
        Cells(5, 5).Interior.Color = -1
    Else
        Cells(5, 5).Interior.Color = vbRed
    End If '---------------
    If Cells(3, 5).Interior.Color = vbRed Then
        Cells(3, 5).Interior.Color = -1
    Else
        Cells(3, 5).Interior.Color = vbRed
    End If '--------------------
        If Cells(4, 4).Interior.Color = vbRed Then
        Cells(4, 4).Interior.Color = -1
    Else
        Cells(4, 4).Interior.Color = vbRed
    End If '--------------------

End Sub

Public Sub naka02()
    If Cells(5, 4).Interior.Color = vbRed Then
        Cells(5, 4).Interior.Color = -1
    Else
        Cells(5, 4).Interior.Color = vbRed
    End If '--------------------
    If Cells(5, 3).Interior.Color = vbRed Then
        Cells(5, 3).Interior.Color = -1
    Else
        Cells(5, 3).Interior.Color = vbRed
    End If '---------------
    If Cells(5, 5).Interior.Color = vbRed Then
        Cells(5, 5).Interior.Color = -1
    Else
        Cells(5, 5).Interior.Color = vbRed
    End If '--------------------
        If Cells(4, 4).Interior.Color = vbRed Then
        Cells(4, 4).Interior.Color = -1
    Else
        Cells(4, 4).Interior.Color = vbRed
    End If '--------------------

End Sub

Public Sub sumi02()
    If Cells(5, 3).Interior.Color = vbRed Then
        Cells(5, 3).Interior.Color = -1
    Else
        Cells(5, 3).Interior.Color = vbRed
    End If
    If Cells(5, 4).Interior.Color = vbRed Then
        Cells(5, 4).Interior.Color = -1
    Else
        Cells(5, 4).Interior.Color = vbRed
    End If
    If Cells(4, 3).Interior.Color = vbRed Then
        Cells(4, 3).Interior.Color = -1
    Else
        Cells(4, 3).Interior.Color = vbRed
    End If

End Sub

Public Sub sumi03()
    If Cells(5, 5).Interior.Color = vbRed Then
        Cells(5, 5).Interior.Color = -1
    Else
        Cells(5, 5).Interior.Color = vbRed
    End If
    If Cells(5, 4).Interior.Color = vbRed Then
        Cells(5, 4).Interior.Color = -1
    Else
        Cells(5, 4).Interior.Color = vbRed
    End If
    If Cells(4, 5).Interior.Color = vbRed Then
        Cells(4, 5).Interior.Color = -1
    Else
        Cells(4, 5).Interior.Color = vbRed
    End If

End Sub

Public Sub sumi04()
    If Cells(3, 5).Interior.Color = vbRed Then
        Cells(3, 5).Interior.Color = -1
    Else
        Cells(3, 5).Interior.Color = vbRed
    End If
    If Cells(4, 5).Interior.Color = vbRed Then
        Cells(4, 5).Interior.Color = -1
    Else
        Cells(4, 5).Interior.Color = vbRed
    End If
    If Cells(3, 4).Interior.Color = vbRed Then
        Cells(3, 4).Interior.Color = -1
    Else
        Cells(3, 4).Interior.Color = vbRed
    End If

End Sub

コメント

タイトルとURLをコピーしました