游戏百科

VBA高级应用30例应用5:转盘游戏代码实现之音效实现

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,本讲的内容是:VBA高级应用30例应用5:转盘游戏代码实现之音效实现

【分享成果,随喜正能量】10人生有可为之事,也有不可为之事。可为之事,当尽力为之,此谓尽性;不可为之事,当尽心从之,此谓知命。毕竟人生幸福的事情,不是活的像别人,而是在努力之后,活得更像自己,做自己的光,一步步走向光明,即使前路漫长,也要坚强。

应用5 利用VBA制作一个转盘游戏

在实际工作中,我们发现Excel是一个非常严肃和强大的应用程序,但这并不意味着我们不能从中得到乐趣。在本文中,我将给大家讲解如何构建一个Excel文件,使您能够玩幸运轮,同时我们会辅助声音和一些必要游戏基础设施构建!

5 转盘游戏代码实现之音效实现

为了实现音效,我们看下面的代码:

#If VBA7 Then

Private Declare PtrSafe Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _

(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

#Else

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _

(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

#End If

'Sound constants

Private Const SND_SYNC = &H0

Private Const SND_ASYNC = &H1

Private Const SND_NODEFAULT = &H2

Private Const SND_LOOP = &H8

Private Const SND_NOSTOP = &H10

Sub PlayBackLoop()

If Len(Dir(ThisWorkbook.Path & "\WheelOfFortune.wav")) > 0 Then

WAVLoop ThisWorkbook.Path & "\WheelOfFortune.wav"

End If

End Sub

Sub PlayBackStop()

Call WAVPlay(vbNullString)

End Sub

Sub WAVLoop(File As String)

Dim SoundName As String

Dim wFlags As Long

Dim x As Long

SoundName = File

wFlags = SND_ASYNC Or SND_LOOP

x = sndPlaySound(SoundName, wFlags)

If x = 0 Then MsgBox "Can't play the audio file. ", vbCritical, "Error"

End Sub

代码截图:

代码的讲解:以上代码实现的是音效的播放和停止,利用的是一个API函数。由于API函数功能强大,但不是VBA范畴,我只是调用,不再过多讲解,如果大家有兴趣,我会送给大家一份相当全的API函数资料。

我20多年的VBA实践经验,全部浓缩在下面的各个教程中: