大家好,我是头条作者:小嘟嘟熊,今天向大伙分享我用EXCEL做的一个小作品(打地鼠),只用了53行代码,很简单的,首先我们打开EXCEL软件,行数从A2到A11,列数从A到J设置1个10*10的区域,把颜色填充为白色,宽度调整一下,画一个边框,这个区域就是刷新地鼠的位置,在A1单元格中写"GO"开始游戏格子(详情看图3),设置好区域后,在菜单栏上单击"工具","宏","Visual Basic 编辑器",在左边资源管理器中双击"Sheet1",在代码编辑框中编写代码:
Option Explicit
Private Const PosX = 1
Private Const PosY = 2
Dim Pre_theMouse As Integer
Dim Pre_PosY As Integer
Dim Cur_theMouse As Integer
Dim cur_PosY As Integer
Dim cut As Integer
Dim KillCut As Integer
Dim KillFalg As Boolean
Public Sub GenerateMouse(ByVal Target As Range)
Randomize
If Pre_theMouse > 0 Then
Target.Cells(Pre_PosY, Pre_theMouse).Interior.Color = vbWhite
Target.Cells(Pre_PosY, Pre_theMouse) = ""
End If
Cur_theMouse = Int(Rnd() * 10 + PosX)
cur_PosY = Int(Rnd() * 10 + PosY)
Target.Cells(cur_PosY, Cur_theMouse).Interior.Color = vbRed
Target.Cells(cur_PosY, Cur_theMouse) = "鼠"
Pre_theMouse = Cur_theMouse
Pre_PosY = cur_PosY
End Sub
图1
要不断的有地鼠刷新,就要一个定时器,我们写一个简单的定时器,来控制刷新地鼠
Private Sub sleep(ByVal value As Single) '定时器'
Dim tim As Long
tim = Timer + value
Do While Timer < tim
DoEvents
Loop
End Sub
接着编写打地鼠的代码,在SelectionChange事件中有一个参数"Target"它是存储当前表中的信息,Target.Column成员是返回当前选择的列, Target.Row是所在行,那么我们就用这两个成员来判断是否打中了地鼠,图片中有详细的介绍
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then
Pre_theMouse = 0
cut = 0
KillCut = 0
Do
DoEvents
sleep 0.5
If KillFalg = False Then
cut = cut + 1
End If
GenerateMouse Target
Target.Cells(1, 2) = "打中:" & KillCut & "只,逃跑:" & cut & "只"
Loop
ElseIf Target.Column
1 And Target.Row < (PosY + 10) Then
If Target.Column = Cur_theMouse And Target.Row = cur_PosY Then
KillFalg = True
KillCut = KillCut + 1
Else
KillFalg = False
End If
End If
End SubEnd Sub
图2
打地鼠代码编写完了,我们回到EXCEL界面,选择A1单元格开始游戏,区域内0.5秒就刷新一只地鼠(这个地鼠动物不是动物,图片不是图片,我用的是汉字来代替的,)不断的跳动,当鼠标选中它时表示打中了,没有的话表示逃跑了,这要看大伙的动作快不快了,如果觉得慢可以修改速度 sleep 0.5,把0.5改0.1,
图3
留言与评论(共有 0 条评论) |