Option Explicit Private Sub cmdOpenFIle_Click() On Error GoTo MyErr With CommonDialog1 .DialogTitle = "サウンドファイルを選択" .InitDir = App.Path .Filter = "サウンドファイル(mp3,wav,wma,midi)|*.mp3;*.wav;*.wma;midi;*.gif;|すべてのファイル|*.*" .FilterIndex = 1 .MaxFileSize = 1024 .ShowOpen If .FileName <> "" And Dir(.FileName) <> "" Then txtFilePath = .FileName SetEnabledButton True End If End With GoTo MyEnd MyErr: MsgBox "エラー発生!" & vbCrLf & Err.Number & " " & Err.Description MyEnd: On Error GoTo 0 End Sub Private Sub cmdPlay_Click() ' 開始 OpenSound txtFilePath, SOUND_ALIAS PlaySound SOUND_ALIAS With HSPosition .Max = GetSoundLength(SOUND_ALIAS) .Min = 0 .Value = 0 .LargeChange = .Max / 10 .SmallChange = .Max / 100 End With SetSoundVolume SOUND_ALIAS, GetSoundVolume(SOUND_ALIAS) / 2 lblVolume.Caption = GetSoundVolume(SOUND_ALIAS) Timer1.Enabled = True SetEnabledButton False, True, True End Sub Private Sub cmdStop_Click() ' 停止 StopSound SOUND_ALIAS CloseSound SOUND_ALIAS SetEnabledButton True Timer1.Enabled = False End Sub Private Sub cmdPause_Click() ' 一時停止 PauseSound SOUND_ALIAS SetEnabledButton False, True, False, True End Sub Private Sub cmdResume_Click() ' 再開 ResumeSound SOUND_ALIAS SetEnabledButton False, True, True, False End Sub Private Sub cmdVol_Click(Index As Integer) '音量 Dim Vol As Double Vol = GetSoundVolume(SOUND_ALIAS) Vol = Vol + 50 * (-1) ^ Index If Vol < 0 Then Vol = 0 If Vol > 1000 Then Vol = 1000 SetSoundVolume SOUND_ALIAS, Vol lblVolume.Caption = GetSoundVolume(SOUND_ALIAS) End Sub Private Sub Form_Load() SetEnabledButton False End Sub Private Sub SetEnabledButton(blPlay As Boolean, _ Optional blStop As Boolean = False, _ Optional blPause As Boolean = False, _ Optional blResume As Boolean = False) ' ' コマンドボタンの有効/無効 ' cmdPlay.Enabled = blPlay cmdStop.Enabled = blStop cmdPause.Enabled = blPause cmdResume.Enabled = blResume End Sub Private Sub Form_Unload(Cancel As Integer) StopSound "all" CloseSound "all" End Sub Private Sub HSPosition_Change() SetSoundPosition SOUND_ALIAS, HSPosition.Value End Sub Private Sub Timer1_Timer() HSPosition.Value = GetSoundPosition(SOUND_ALIAS) If HSPosition.Value = HSPosition.Max Then cmdStop_Click End Sub