계산이 완료되면 Excel에서 경고음을 낼 수 있습니까?


13

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

어떤 아이디어?


1
정확히 어떻게 계산하고 있습니까? VBA에 있다면 VBA의 "Beep"방법을 사용하지 않겠습니까? 이미 무엇을 시도 했습니까?
Ƭᴇcʜιᴇ007

2
@ techie007은 VBA가 아닙니다. 큰 Excel 스프레드 시트에서 작동합니다.
Eliyahu

1
특히 SS가 실제로 "수식"대신 "함수"를 사용하여 계산하는 경우 경고음 기능을 사용할 수 있습니다. 그러나 "사용 방법"은 스프레드 시트의 작동 방식에 따라 크게 달라집니다. 셀에 값을 입력 한 다음 실제로 끝나기까지 오랜 시간을 기다려야합니까, 아니면 셀을 채운 후 버튼을 눌러 계산을 시작합니까? F11을 눌러 VBA 편집기를 열면 코드가 많이 있습니까?
Ƭᴇcʜιᴇ007

@ techie007 수식을 사용하고 있습니다. 많은 작업을 마친 후 F9 키를 누르고 기다려야합니다.
Eliyahu

다른 방법으로 계산을 수행했을 것입니다. Excel에서 열린 통합 문서에서 계산을 수행하도록 지시하는 것만으로는 원하는 것이 불가능합니다.
Ramhound

답변:


21

좋습니다, 시도해보십시오 (지침은 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을여십시오.
  • 이익. :)

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

더 많은 정보:


5

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

Function beepNow()
Beep 
End Function

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

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


2
현재 VBA UDF를 사용하지 않는 경우 VBA UDF를 도입하면 성능이 크게 저하 될 수 있습니다 (일반 기능과 달리 주 스레드에서만 실행 됨). 한 번의 경고음으로 문제가되지는 않지만, 어디에서나 뿌려주기 시작하면 문제가 발생합니다.
sapi

1
불행히도이 기능은 사운드 카드 및 스피커가 아니라 내부 스피커 인 PC 스피커를 사용합니다. 참고-많은 회사에서 PC 스피커가 제거 또는 비활성화되어 아무 소리도 들리지 않습니다.
raddevus

1

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


슈퍼 유저에 오신 것을 환영합니다. 이것은 실질적으로 다른 해결책이 아닌 다른 답변에 대한 의견 인 것처럼 보이며 이는 답변 게시물의 의도입니다. 약간의 담당자가 있으면 댓글을 게시 할 수 있습니다.
fixer1234

0

@ Ƭᴇ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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.