在VBA中通过调用API函数mcisendstring,可以播放MP3格式的音乐。下面是VBA代码,我们可以将它放入模块中,方法是在VBA编辑器中单击菜单“插入→模块”,在代码窗口中输入下列代码。
Option Explicit
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Function ConvShortFilename(ByVal strLongPath$) As String
Dim strShortPath$
If InStr(1, strLongPath, " ") Then
strShortPath = String(LenB(strLongPath), Chr(0))
GetShortPathName strLongPath, strShortPath, Len(strShortPath)
ConvShortFilename = Left(strShortPath, InStr(1, strShortPath, Chr(0)) - 1)
Else
ConvShortFilename = strLongPath
End If
End Function
Public Sub MMPlay(ByRef FileName As String)
FileName = ConvShortFilename(FileName)
mciSendString "close " & FileName, vbNullString, 0, 0
mciSendString "open " & FileName, vbNullString, 0, 0
mciSendString "play " & FileName, vbNullString, 0, 0
End Sub
Public Sub MMStop(ByRef FileName As String)
FileName = ConvShortFilename(FileName)
mciSendString "stop " & FileName, vbNullString, 0, 0
mciSendString "close " & FileName, vbNullString, 0, 0
End Sub
Excel利用VBA生成一列不重复的随机整数
如果我们要用VBA生成一列不重复的随机整数,可以用下面的VBA代码。本例可以在A1:A100中产生1-100的不重复随机整数。SubRndNumberNoRepeat()DimTempArr1(99)AsInteger,TempArr2(0To99,1To1)AsIntegerDimRn
然后,可以在VBA中调用上述代码。
播放MP3:MMPlay (Mp3File)
停止播放:MMStop (Mp3File)
其中Mp3File为包含路径的MP3文件名。
下面是一个简单的示例,在工作表“Sheet1”中有两个按钮,一个是“打开并播放MP3文件”,另一个是“停止播放”。单击“打开并播放MP3文件”按钮可以在“打开”对话框中选择一个MP3音乐文件并播放。
Excel利用VBA将指定的单元格定位于屏幕中央
如果工作表中的单元格都具有相同的行高和列宽,我们可以用VBA的方法将给定的单元格和区域定位于屏幕中央,下面是VBA代码:SubCenterOnCell(OnCellAsRange)DimVisRowsAsIntegerDimVisColsAsInteger'关