VBA-API:通過BEEP函式(揚聲器)播方音樂
阿新 • • 發佈:2018-12-17
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long '響鈴API函式宣告 Private Const K = 0 '空拍 Private Const C4 = 523 Private Const C_4 = 554 Private Const D4 = 588 Private Const D_4 = 623 Private Const E4 = 660 Private Const F4 = 700 Private Const F_4 = 742 Private Const G4 = 786 Private Const G_4 = 833 Private Const A4 = 884 Private Const A_4 = 936 Private Const B4 = 992 Private Const C5 = 1046 Private Const C_5 = 1108 Private Const D5 = 1176 Private Const D_5 = 1246 Private Const E5 = 1320 Private Const F5 = 1400 Private Const F_5 = 1484 Private Const G5 = 1572 Private Const G_5 = 1666 Private Const A5 = 1768 Private Const A_5 = 1872 Private Const B5 = 1984 Private Const C6 = 2092 Private Const C_6 = 2216 Private Const D6 = 2352 Private Const D_6 = 2492 Private Const E6 = 2640 Private Const F6 = 2800 Private Const F_6 = 2968 Private Const G6 = 3144 Private Const G_6 = 3332 Private Const A6 = 3536 Private Const A_6 = 3744 Private Const B6 = 3968 Private Const P = 125 Sub PlayStave(Stave As String) '按照曲譜BEEP Dim DIC As Object Set DIC = CreateObject("Scripting.Dictionary") DIC.Add "K", 0 '空拍 DIC.Add "C4", 523 DIC.Add "C_4", 554 DIC.Add "D4", 588 DIC.Add "D_4", 623 DIC.Add "E4", 660 DIC.Add "F4", 700 DIC.Add "F_4", 742 DIC.Add "G4", 786 DIC.Add "G_4", 833 DIC.Add "A4", 884 DIC.Add "A_4", 936 DIC.Add "B4", 992 DIC.Add "C5", 1046 DIC.Add "C_5", 1108 DIC.Add "D5", 1176 DIC.Add "D_5", 1246 DIC.Add "E5", 1320 DIC.Add "F5", 1400 DIC.Add "F_5", 1484 DIC.Add "G5", 1572 DIC.Add "G_5", 1666 DIC.Add "A5", 1768 DIC.Add "A_5", 1872 DIC.Add "B5", 1984 DIC.Add "C6", 2092 DIC.Add "C_6", 2216 DIC.Add "D6", 2352 DIC.Add "D_6", 2492 DIC.Add "E6", 2640 DIC.Add "F6", 2800 DIC.Add "F_6", 2968 DIC.Add "G6", 3144 DIC.Add "G_6", 3332 DIC.Add "A6", 3536 DIC.Add "A_6", 3744 DIC.Add "B6", 3968 DIC.Add "P", 125 Dim notes, arr As Variant notes = Split(Stave, ",") For i = 0 To UBound(notes) s = Split(notes(i), "-") Beep DIC(s(0)), Int(s(1)) * 100 Next End Sub Sub play() '歡樂頌 PlayStave "E5-4,E5-4,F5-4,G5-4" _ & ",G5-4,F5-4,E5-4,D5-4" _ & ",C5-4,C5-4,D5-4,E5-4" _ & ",E5-4,D5-2,D5-10" _ & ",E5-4,E5-4,F5-4,G5-4" _ & ",G5-4,F5-4,E5-4,D5-4" _ & ",C5-4,C5-4,D5-4,E5-4" _ & ",D5-4,C5-2,C5-10" End Sub Sub play2() Beep E5, 400 Beep E5, 400 Beep F5, 400 Beep G5, 400 Beep G5, 400 Beep F5, 400 Beep E5, 400 Beep D5, 400 End Sub