VBA扫雷器-在Excel的工作表中利用鼠标。

大多数情况下,VBA与变量一起使用。 对象(例如工作表,单元格或数据库)仅在读取其属性(值,公式,字体...)或使用方法(保存,打开...)时使用。 但是它们的事件很少使用,主要是在使用MS Forms时使用。

Excel具有两种非常重要的对象类型:工作簿和工作表,它们除了具有属性和方法外,还具有事件。

工作表的事件不会显示在代码编辑器的任何组合框中,但是您可以通过单击F2(查看对象浏览器)来获得事件列表。

工作表的事件是:

启用

DoubleClick之前

BeforeRightClick

计算

更改

停用

跟随超链接

数据透视表更新

选择变更

如您所见,其中许多都与“我们用鼠标做什么”有关。

首先,我将告诉您该操作的用途,下面是完整的代码,因此您可以将其复制粘贴以开始在工作表中播放Minesweeper ...

是的 您将在工作表中玩Minesweeper,这就是本教程的全部内容。

让我们创建一个名为Mines的公共2D数组(哇,非常原始),尺寸为11x11(实际上,入门级Minesweeper板为9x9,但是要使用“通用算法”来计算正方形附近的地雷,我将边界留空而不是为每个边界设置特殊情况,但是的,我们的董事会将是9x9)

我将制作的第一个Sub称为“生成”(我知道我的创造力非常出色,我很着急^。^)。

“生成”将更改单元格的大小,使其看起来像正方形,然后将10个“ X”(随机)放入数组中,然后在数组的其余部分填充数字。 该算法非常简单,只需看一下即可。

然后它将隐藏我们不需要的行和列(请记住,此代码是为Excel 2003编写的,在使用Excel 2007时,可能需要更改此范围)。

现在,为了更好地处理事件,让我们声明GetAsyncKeyState函数,并创建一个名为RightButton的简单布尔函数,该函数将指示是否按下了鼠标的Right按钮。

好了,现在是我们两个主要事件^。^的时候了,我将在SelectionChange事件中进行所有操作。 但是当放置一个标志时,它也会使用BeforeRightClick事件。 请注意,它们的参数是称为Target的范围,它们是BYVAL。 对于BeforeRightClick,您还有一个名为Cancel的布尔值(顺便说一句,它是ByRef而不是ByVal)。

现在,只需将下面的代码放在Sheet1或Sheet2或任何工作表的代码窗口中,然后运行'Generate'子即可开始播放。 检查评论以查看其工作原理。

记住事件的顺序非常重要。 单击单元格上的“向右”按钮时,首先将更改选择,然后向右引爆。 因此SelectionChange事件将始终在BeforeRightClick之前运行。


Option Explicit
Dim Mines(1 To 11, 1 To 11)
Sub Generate()
Dim i(1 To 2) As Integer, j As Integer, k As Integer
'------------------------------'
'Give a nice look to our board '
'------------
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值