premessa
leggendo qualche topic del forum ne ho trovati alcuni interessanti che parlano di come usare i BEEP e PLAYSOUND, mi hanno riportato indietro nel tempo e ricordo che all'epoca usavo il foglio elettronico di FRAMEWORK 3, per usare i BEEP con una serie di numeri (le frequenze).
Così seguendo i vostri consigli, ho provato a tirare giù 2 macro, che per la maggior parte (99,9%) , sono frutto del vostro sapere.
le macro sono le seguenti:
la prima
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Range("A1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$B$1" Then
Select Case Range("B1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$C$1" Then
Select Case Range("C1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$D$1" Then
Select Case Range("D1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$E$1" Then
Select Case Range("E1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$F$1" Then
Select Case Range("F1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$G$1" Then
Select Case Range("G1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
If Target.Address = "$H$1" Then
Select Case Range("H1")
Case 0
PlaySoundDO1
Case 1
PlaySoundRE
Case 2
PlaySoundMI
Case 3
PlaySoundFA
Case 4
PlaySoundSOL
Case 5
PlaySoundLA
Case 6
PlaySoundSI
Case 7
PlaySoundDO2
End Select
End If
End Sub
lo applicata nel VBA del Foglio 1, che mi seleziona un range di 8 caselle, contenente dei numeri.
La 2 macro:
- Codice: Seleziona tutto
'This function declaration must be entered onto a single line.
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub PlaySoundDO1()
If Application.CanPlaySounds Then
'Substitute the path and filename of the sound you want to play
Call sndPlaySound32("c:\documenti\....\Documenti\.....\......\DO1.wav", 0)
End If
End Sub
mi esegue il file .wav., copiata in 8 moduli, una per nota
richesta
Ho 3 domande per voi.
1. nel vba di excel il BEEP in uso ha la possibilità di cambiare la frequenza??
Se SI.
2. Quali sono e come impostare i numeri usati dal BEEP?? (usando anche i bemolle e i diesis )
3. Potete aiutarmi con una macro che legge i numeri nel foglio (tutto il foglio) e li esegue emettendo il BEEP a seconda del numero scritto, la frequenza del beep chiamato?
Come sempre, vi ringrazio,
un abbraccio
bianco55