Option Explicit
#If Win64 Then
Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#Else
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
Const VK_VOLUME_MUTE = &HAD 'Windows 2000/XP: Volume Mute key
Const VK_VOLUME_DOWN = &HAE 'Windows 2000/XP: Volume Down key
Const VK_VOLUME_UP = &HAF 'Windows 2000/XP: Volume Up key
Sub VolUp()
'-- Turn volumn up --
keybd_event VK_VOLUME_UP, 0, 1, 0
keybd_event VK_VOLUME_UP, 0, 3, 0
End Sub
Sub VolDown()
'-- Turn volumn down --
keybd_event VK_VOLUME_DOWN, 0, 1, 0
keybd_event VK_VOLUME_DOWN, 0, 3, 0
End Sub
Sub VolToggle()
'-- Toggle mute on / off --
keybd_event VK_VOLUME_MUTE, 0, 1, 0
End Sub
Sub VolLower()
' Met à 0 le volume
Dim i As Long
For i = 1 To 50
VolDown
Next i
End Sub
Sub VolUpper()
' Met à 100 le volume
Dim i As Long
For i = 1 To 50
VolUp
Next i
End Sub
Sub VolSet(valVolume As Integer)
' Positionne le volume à la valeur de 0 à 100
' Le pas d'incrément du volume est de 2.
Dim i As Long, n As Long
Const pasVol = 2
' Limitation du volume à une valeur de graduation réelle de 0 à 100
With Application.WorksheetFunction
n = .Max(.Min(valVolume, 100), 0)
End With
' On commence par mettre le volume à 0
VolLower
' On monte de pas en pas jusqu'à la valeur de volume n
For i = 1 To n Step pasVol
VolUp
Next i
End Sub
Sub testJouePhrase()
VolSet (50)
Call JouePhrase("Hello !")
End Sub