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
コメント