1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

엑셀에서 소리 내기(재생) _ sound play

기타 조회 수 7389 추천 수 0 2010.12.13 02:31:03

질문하기 게시판에 어떤 분이 질문하셨던 내용을 답변으로 작성했던 내용입니다.

 

답변을 얻으신 다음에, 게시물을 삭제해서 팁란에 게시합니다.

 

그러시면 안되죠.. =_=;;

그럼.. 제가 작성한 답변은 뻘짓인가요? =_=;;

 

 

질문의 내용은 아래와 같았습니다.

     1. 엑셀에서 소리내는 방법

     2. 특정 영역에 데이터가 0또는 1로 바뀔때 각각 다른 소리 내는 방법

     3. 수식으로 연결된 셀도 원 데이터가 바뀌여서 연결된 값이 바뀔때도 소리 나게 하는 방법

 

 

답변으로 만든 파일입니다.

다운받기 : 

abyul_playSound_20101118-3.xlsm

abyul_playSound_20101118-3_64bit.xlsm

 

소스는 아래를 참고하세요..

 

[ WorkSheet의 코드]

Private Sub Worksheet_Change(ByVal Target As Range)
    '엑셀 시트에서 "$C$5:$C$9" 범위를 "monitorRange"라는 이름으로 정의해두었습니다.
    With [monitorRange]
        If Target.Column < .Column Or Target.Column > .Column + .Columns.Count - 1 Then Exit Sub
        If Target.Row < .Row Or Target.Row > .Row + .Rows.Count - 1 Then Exit Sub
    End With
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Value = 1 Then Call testSound1
    If Target.Value = 0 Then Call testSound2
End Sub

Private Sub Worksheet_Calculate()
    Call checkChanged
End Sub

Sub checkChanged()
    Dim i As Integer
    For i = 1 To [monitorRange].Cells.Count
        If [monitorRange].Cells(i) <> [bufferRange].Cells(i) Then
            If [monitorRange].Cells(i) = 1 And [bufferRange].Cells(i) = 0 Then
                Call testSound1
            ElseIf [monitorRange].Cells(i) = 0 And [bufferRange].Cells(i) = 1 Then
                Call testSound2
            Else
                Call copyToBuffer
            End If
        End If
    Next i
End Sub

Private Sub Worksheet_Deactivate()
    Call copyToBuffer
End Sub

Sub copyToBuffer()
    [bufferRange].Value = [monitorRange].Value
End Sub

 

 

[ Module 부분의 소스 ]

'http://support.microsoft.com/kb/158140/ko
   Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
       (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
   Const SND_ASYNC = &H1
  
   Sub testSound1()
       If Application.CanPlaySounds Then Call sndPlaySound32("C:\WINDOWS\Media\tada.wav", SND_ASYNC)
   End Sub
   Sub testSound2()
       If Application.CanPlaySounds Then Call sndPlaySound32("C:\WINDOWS\Media\notify.wav", SND_ASYNC)
   End Sub

 

 

참고로.. 소리내는 소스는 아래 코드도 참고해보세요.

 

'======================================================================================
'http://support.microsoft.com/kb/86281/ko

Private Declare Function sndPlaySound Lib "winmm.dll" Alias _
      "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10


Sub testSound1()
   SoundName$ = "C:\WINDOWS\Media\tada.wav"
   wFlags% = SND_ASYNC Or SND_NODEFAULT
   x% = sndPlaySound(SoundName$, wFlags%)
End Sub
               
Sub testSound2()
   SoundName$ = "C:\WINDOWS\Media\notify.wav"
   wFlags% = SND_ASYNC Or SND_NODEFAULT
   x% = sndPlaySound(SoundName$, wFlags%)
End Sub


댓글 '1'

Chris

2015.11.01 02:21:14
*.89.132.243

완젼 좋네요 감사합니다^^

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 33819
64 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 _ 윈도우 도움말 file [레벨:30]아별 2017-04-21 39349
63 [펌] Visual Basic (비쥬얼 베이직) 함수 정리 imagefile [레벨:30]아별 2009-11-27 20068
62 시트에서 콤보박스 활용하기 file [레벨:30]a☆ 2005-11-12 16708
61 메시지 박스 대용으로 Shape 사용하기 file [레벨:30]아별 2009-05-07 16045
60 기타 [펌] 엑셀 VBA 총정리 _ Excel 개체 모델 참조 등 image [2] [레벨:30]아별 2010-03-09 15919
59 [VBA] 전역변수 설정하기. Public 문, Private 문 imagefile [레벨:30]아별 2008-07-01 14018
58 엑셀에서 사용하는 언어 확인하기. file [1] [레벨:30]아별 2009-06-03 13776
57 기타 [펌] VBA 공부를 시작하시는분들에게 추천하는 강의자료 imagefile [4] [레벨:30]아별 2011-03-21 13698
56 기타 [Excel VBA] 피벗테이블(PivotTable)을 VBA로 컨트롤해보자.. [레벨:30]아별 2008-12-19 12076
55 [엑셀VBA] 자동필터를 매크로로 구현하기 [레벨:30]아별 2008-08-28 11224
54 엑셀에서 달력 집어 넣기.. [1] [레벨:30]a☆ 2004-10-21 10947
53 엑셀2007에서 셀의 색상을 RGB로 뽑아내기 file [레벨:30]아별 2009-10-06 10196
52 엑셀의 유저폼 관련 [1] [레벨:30]a☆ 2004-10-21 10049
51 엑셀에서 줄바꿈에 대해서.. 줄바꿈하기 제거하기 등등.. [레벨:30]a☆ 2004-11-15 9992
50 기타 [링크] VBA로 파일을 다루는 방법에 대한 강좌들을 모아놓은 겁니다. [레벨:30]아별 2010-03-03 9831
49 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 file [2] [레벨:30]아별 2011-10-05 9218
48 [엑셀VBA] 네이버 지식인 답변 _ 엑셀 쿼리를 이용해서 펀드 기준가 데이터를 읽어오기. file [레벨:30]아별 2008-04-30 9120
47 기타 VBA _ 레지스트리 다루기 ( registry control ) imagefile [레벨:30]아별 2011-03-19 8671
46 [10/19일 수정] 엑셀 매크로 수정하기... [2] [레벨:30]a☆ 2003-09-29 8250