계산이 완료되면 Excel에서 경고음을 낼 수 있습니까? 책상에서 무언가를

Excel에서 이러한 계산이 정말 길었습니다. 화면에서주의를 돌리고 책상에서 무언가를 끝내고 싶지만 계산이 완료되면 경고를받습니다.

어떤 아이디어?



답변

좋습니다, 시도해보십시오 (지침은 Excel 2007 이상을 가정합니다).

  • 통합 문서를 엽니 다.
  • 매크로 사용 SS ( .XLSM) 로 저장하십시오 .
  • Alt-F11을 눌러 VBA 코딩 창을 엽니 다.
  • VBAProject ( yourbook.xlsm)를 마우스 오른쪽 단추로 클릭 하고 삽입 → 모듈을 선택하십시오.
  • 새로 만든 “Module1″을 엽니 다.
  • 모듈에서이 스 니펫을 붙여 넣습니다.

    Sub Auto_Open()
        Application.OnKey "{F9}", "F9Handler"
    End Sub
    

    이렇게하면 SS를 열 때마다 F9 키가 다시 할당됩니다. F9를 누르면 F9Handler일반적인 계산 대신 실행 됩니다.

  • 모듈에서이 스 니펫을 붙여 넣습니다.

    Sub F9Handler()
        Application.Calculate
        Beep
    End Sub
    

    F9를 눌렀을 때 실행됩니다. 첫 번째 줄은 Application.Calculate(F9가 일반적으로 수행하는 것)을 실행 한 다음 경고음을냅니다.

  • 모든 것을 저장하십시오.

  • Excel을 닫습니다.
  • (다시) XLSM을여십시오.
  • 이익. 🙂

참고 : 매크로를 예상대로 실행하려면 매크로를 활성화하거나 문서를 “신뢰할 수있는”문서로 만들어야합니다.

더 많은 정보:


답변

다른 사람들이 언급했듯이 beepVisual Basic (VB) 의 명령을 사용하십시오 .

Function beepNow()
Beep
End Function

VB 코딩을 사용하려면 Developer tab사용 가능 해야 합니다 ( 개발자 탭 표시 참조 ).

따라서 셀이나 조건이 변경되면 경고음이 울립니다. 위의 VBS 코드를 호출하는 매크로 예 :=IF(C2<>C3,beepNow(),"")


답변

모듈을 ss에 배치하는 대신 Personal.xlsb에 넣을 수 있습니다. 이를 통해 모든 ss에서 “경고음”을 사용할 수 있습니다. 이를 실행하려면 빠른 실행 도구 모음을 수정하거나 버튼 / 모양을 삽입하여 SS를 클릭하고 매크로를 지정하십시오.


답변

@ Ƭᴇcʜιᴇ007에 의해 게시 된 답변은 다른 사람들이 언급 한 예외를 제외하고는 훌륭한 답변입니다.이 Beep방법은 컴퓨터의 온보드 (때로는 비활성화 된) 스피커에 의존하고 스피커를 사용하지 않으므로 아무 것도들을 수 없습니다.

해당 답변을 기반으로 해결 방법을 게시하고 있습니다. 관련된 내용이 적다면 대신 의견을 게시했을 것입니다.

다음은 Windows에서 VBA로 사운드를 재생하는 데 사용하는 것입니다. 온보드 대신 일반 컴퓨터 스피커를 사용하며이 Beep방법으로 액세스 할 수없는 스피커도 있습니다 .

@ Ƭᴇcʜιᴇ007의 답변으로 시작하십시오. Beep이것으로 변경 하십시오 :

PlaySound sound_Up

또는 sound_Up아래의 코드에서 SoundType 열거 (목록)에서 다른 항목으로 변경하여 사운드를 변경할 수 있습니다 .sound_Completesound_Notify

Option Explicit
' --------------------------------------------------
' --------------------------------------------------
'   REQUIRED DLL REFERENCE AND CONSTANTS
' --------------------------------------------------
' Reference to external procedure in DLL to play sounds

#If VBA7 Then
    ' 64-bit MS Office
    Private Declare PtrSafe Function sndPlaySound32bit Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As LongPtr) As LongPtr
#Else
    ' 32-bit MS Office
    Private Declare Function sndPlaySound32bit Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As LongPtr) As LongPtr
#End If

' --------------------------------------------------
' --------------------------------------------------
'   CONSTANTS
' --------------------------------------------------
'
Public Const SOUND_DO_NOT_WAIT          As String = "&H1"
Private Const SOUND_FILES_PATH          As String = "C:\Windows\Media\"

' --------------------------------------------------
' --------------------------------------------------
'   PUBLIC ENUMERATIONS
' --------------------------------------------------
'
Public Enum SoundType
    sound_None = 0
    sound_Up = 1
    sound_Down = 2
    sound_Attention = 3
    sound_Blocked = 4
    sound_Boop = 5
    sound_Complete = 6
    sound_Critical = 7
    sound_Ding = 8
    sound_Error = 9
    sound_Exclamation = 10
    sound_FastDown = 11
    sound_Information = 12
    sound_Notify = 13
    sound_PhoneRing = 14
    sound_RingOut = 15
    sound_Stop = 16
    sound_Tada = 17
    sound_Tone = 18
End Enum

' --------------------------------------------------
' --------------------------------------------------
'   PUBLIC METHODS
' --------------------------------------------------
'
Public Sub PlaySound(ByVal sound As SoundType)
' Plays a sound from a list (see the 'SoundType' Enum).  Code execution continues
'   while sound is playing.
    Dim soundFileName                   As String
    soundFileName = GetSoundFileName(sound)

    If Not soundFileName = vbNullString Then
        sndPlaySound32bit SOUND_FILES_PATH & soundFileName, SOUND_DO_NOT_WAIT
    End If
End Sub

' --------------------------------------------------
' --------------------------------------------------
'   PRIVATE DEPENDENCIES
' --------------------------------------------------
'
Private Function GetSoundFileName(ByVal soundToGet As SoundType) As String
' Returns a windows sound file name (not path) from a member of the custom
'   'SoundType' enumeration.

    Dim fName                           As String

    Select Case soundToGet
    Case sound_Up:          fName = "Speech On.wav"
    Case sound_Down:        fName = "Speech Off.wav"
    Case sound_Attention:   fName = "Windows Battery Low.wav"
    Case sound_Blocked:     fName = "Windows Pop-up Blocked.wav"
    Case sound_Boop:        fName = "Speech Misrecognition.wav"
    Case sound_Complete:    fName = "Windows Print complete.wav"
    Case sound_Critical:    fName = "Windows Critical Stop.wav"
    Case sound_Ding:        fName = "Windows Ding.wav"
    Case sound_Error:       fName = "Windows Error.wav"
    Case sound_Exclamation: fName = "Windows Exclamation.wav"
    Case sound_FastDown:    fName = "Speech Sleep.wav"
    Case sound_Information: fName = "Windows Information Bar.wav"
    Case sound_Notify:      fName = "notify.wav"
    Case sound_PhoneRing:   fName = "Windows Ringin.wav"
    Case sound_RingOut:     fName = "Windows Ringout.wav"
    Case sound_Stop:        fName = "chord.wav"
    Case sound_Tada:        fName = "tada.wav"
    Case sound_Tone:        fName = "Windows Balloon.wav"
    Case Else:              fName = vbNullString
    End Select

    GetSoundFileName = fName
End Function