巧用Excel制作中国福利3D摇号程序

时间:2022-04-11 02:33:32

巧用Excel制作中国福利3D摇号程序

摘要:中国福利3D游戏是广大彩民最喜欢的福彩游戏之一,笔者巧用Excel中的VBA编程功能和数据库功能制作了一款带音效的中国福利3D摇号程序,使用者可以自娱自乐,简单又实用,文中就其功能、特色和制作方法作了详细的介绍。

关键词:Excel;VBA编程;3D摇号程序

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)11-2676-02

Using Excel, Making China's Welfare Lottery 3D Ernie Program

MA Zhi-ming1, SHU Xiao-jun2, YANG Ting-ting1

(1.College of Computer Science and Technology, Xinjiang Normal University, Urumqi 830054, China; 2.Interior Areas Students Office the Ministry of Education of Xinjiang, Urumqi 830049, China)

Abstract: China's welfare lottery 3D game is one of the most popular game among the lottery hunters. A China's welfare lottery 3D ernie program with sound effect has been developed by using Excel VBA and database function. The user could entertain himself by using the simple and practical program. The functions, features and making method have been introduced in the paper.

Key words: Excel; VBA programming; 3D ernie program

近年来福利在社会上非常盛行,在广大彩民娱乐的同时也为国家筹集了不少福利基金,为国家的福利事业做出了自己的贡献。笔者巧用Excel的VBA编程功能和数据库功能制作了一款简单、实用且带音效的中国福利3D摇号程序,既可以将其当作娱乐游戏,也可以将其作为中国福利3D游戏的自选号工具,使用后效果良好。现将其设计思想和制作方法介绍给各位,希望对大家能有所启示。

1 程序功能及特色

中国福利3D游戏是在1到33的红色球号码中随机抽取6个号码,并在1到16的蓝色球号码中随机抽取1个号码,通过颜色和号码比对决定获奖情况。本程序在Excel工作表界面中动态呈现该3D游戏滚动摇号过程,并可对区的号码进行比对,同时在另一个工作表中动态统计各色号码出现的次数,实现了摇号软件的相关功能,可以满足各类用户的有关需求。

1.1 程序功能

程序运行界面如图1所示。在“Sheet1”工作表的K2单元格起输入号码,然后单击“开始”按钮就可启动摇号程序;如果选中的是“单行显示”,此时第一行有不断滚动的红色和蓝色号码,如果选中的是“多行显示”,此时最后一行后面有不断滚动的红色和蓝色号码。当单击“停”按钮后,滚动停止,3D号码产生,并对区的号码进行比对,同时在“Sheet2”工作表中统计各色号码曾出现的次数。

1.2 程序特色

启动摇号后伴随着激情音乐六红一蓝的七个号码在七个单元格中不断地快速变换,叫停后根据猜中的号码数伴随着幽默笑声或哀叹声期盼的号码浮出水面,相关号码统计信息自动记录在另一个工作表中;本程序显示方式完全由用户决定,对错情况一目了然,操作十分方便。

2 Excel的VBA编程功能

Excel是微软开发的一款电子报表软件,其中集成了一种加强其功能的语言VBA(Visual Basic for Application)。VBA给使用者提供了对软件进行二次开发的可能性,利用VBA开发者可以在Excel中添加按钮等用户接口控件,通过这些控件应用程序可以得到用户的请求并做出响应。在Excel中适当地使用VBA编程可以大大增强其交互功能,达到意想不到的效果,本文介绍的程序就是一例。

3 程序设计

3.1 界面设计

启动Excel,通过“视图/工具栏”打开“控件工具箱”,在“Sheet1”工作表的H列按上图所示从上到下依次添加两个单选按钮和两个命令按钮;点击控件工具箱中的属性按钮并打开属性窗口,将以上四个控件的标题(Caption)属性依次改为“多行显示”、“单行显示”、“开始”和“停”。

3.2 编写宏代码

用VBA编写的代码称为宏代码。双击某个控件,进入VBA代码窗口,输入以下代码:

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Dim Stoped As Boolean, a(1 To 7) As Byte

Private Sub 开始_Click() '单击“开始”

Stoped = False

停.Enabled = True

开始.Enabled = False

PlaySound ActiveWorkbook.Path & "\音效1.wav", 1, 1

Randomize

If OptionButton1 Then '多行显示

Do While Cells(n + 1, 1) ""

n = n + 1 '统计已选出组数

Loop

End If

Range("I3:O3").ClearContents '清空√

While Not Stoped '循环滚动

For i = 1 To 6 '产生红色球号码

a(i) = Int(Rnd * 33) + 1

For j = 1 To i - 1 '避免重复

If a(j) = a(i) Then i = i - 1: Exit For

Next j

Next i

For i = 1 To 5 '对红色球号码排序

k = i

For j = i + 1 To 6

If a(j) < a(k) Then k = j

Next j

If k i Then x = a(i): a(i) = a(k): a(k) = x

Next i

a(7) = Int(Rnd * 16) + 1 '产生蓝色球号码

For i = 1 To 7 '显示号码

Cells(n + 1, i) = a(i)

Next i

DoEvents

Wend

End Sub

Private Sub 停_Click() '单击“停”

Dim Red As Byte, Blue As Byte, s As String

Stoped = True

For i = 1 To 6 '统计红色球号码

For j = 9 To 14 '猜对的个数

If a(i) = Val(Cells(2, j)) Then

Red = Red + 1

Cells(3, j) = "√" '猜中打√

End If

Next j

Sheet2.Cells(a(i), 2) = Val(Sheet2.Cells(a(i), 2)) + 1 '次数

Next i

If a(7) = Val(Cells(2, 15)) Then '猜对蓝色球号码

Blue = 1

Cells(3, 15) = "√" '猜中打√

End If

Sheet2.Cells(a(7), 4) = Val(Sheet2.Cells(a(7), 4)) + 1 '次数

s = "\音效" & IIf(Red + Blue > 1, 2, 3) & ".wav"

PlaySound ActiveWorkbook.Path & s, 1, 1

停.Enabled = False

开始.Enabled = True

End Sub

3.3 关健技术

3.3.1 如何在无限次循环中响应其它事件

只要开始摇号后程序就进入了无限次的循环,只有在“停”按钮单击时改变该循环的条件,循环才能结束,产生的号码也才能浮出水面。但是在进入无限次循环后,计算机一般无法再响应象单击这样的其它事件,如何完成“停”按钮的单击呢?

方法是在该循环中添加一条DoEvents语句,其目的是在循环期间可以将控制权交给系统,以顾及其它任务或请求。

3.3.2 如何访问Excel中的单元格

利用VBA访问Excel中的单元格有两种方法:一种是用Cells(RowIndex,ColumnIndex)属性,只要指定行号RowIndex和列号ColumnIndex就可访问相应的单元格。另一种方法是利用Range(Cell1[,Cell2])属性,它可以访问一个单元格或由两个单元格为对角的矩形区域。根据需要两种方法在本文中均有应用。

3.3.3 如何播放背景音效

虽然Excel支持插入音效对象,但通过程序对该对象进行播放控制还是比较麻烦。为此,本程序选用Win32API函数sndPlaySound来播放wav格式的背景音效,以营造现场气氛。用该函数后若无指定音效文件,程序也不会出错,容错性好。

4 运行程序

回到“Sheet1”工作表,点击控件工具箱中的“退出设计模式”按钮,关闭属性窗口和控件工具箱,保存工作簿后即可体验独具特色的以Excel为界面的带音效的中国福利3D游戏。

需要指出的是:为了防范宏病毒对计算机的侵害,在Excel中的“工具”菜单中对宏的安全性设置了相应的安全级,只有将安全级设置成“低”或“中”,重新打开相应的Excel文件,并在系统提示的“安全警告”对话框中选择“启用宏”(当设置成“低”时不会出现此对话框),这样才能在Excel中启动宏代码,体验程序带来的惊喜。

5 结束语

限于篇幅,本文介绍的摇奖程序没有涉及多项号码的比对,感兴趣的读者不妨自己去完善相应的功能;此外,借用文中介绍的方法,喜欢钻研者在Excel中还可以开发出更多更精彩的程序。

参考文献:

[1] 李政,梁海英,李昊.VBA应用基础与实例教程[M].北京:国防工业出版社,2005:46-136.

[2] 马致明,木沙江・加帕尔.巧用VBA制作口算练习课件[J].中国教育信息化,2008(6):49-51.

上一篇:麻将游戏软件的听牌牌型分析 下一篇:综合布线配线系统优化设计与实现