Saya memiliki perhitungan yang sangat panjang ini di Excel. Saya ingin mengalihkan perhatian saya dari layar dan menyelesaikan sesuatu di meja saya, tetapi waspada ketika perhitungan selesai.
Ada ide?
Saya memiliki perhitungan yang sangat panjang ini di Excel. Saya ingin mengalihkan perhatian saya dari layar dan menyelesaikan sesuatu di meja saya, tetapi waspada ketika perhitungan selesai.
Ada ide?
Jawaban:
OK, sesuatu untuk dicoba (instruksi menganggap Excel 2007 atau yang lebih baru):
.XLSM
) yang diaktifkan makro .yourbook.xlsm
), dan pilih Sisipkan → Modul.Dalam modul tempel cuplikan ini:
Sub Auto_Open()
Application.OnKey "{F9}", "F9Handler"
End Sub
Ini akan menyebabkan kunci F9 ditugaskan kembali setiap kali SS dibuka. Ketika Anda menekan F9 itu akan berjalan, F9Handler
bukan perhitungan yang biasa.
Di modul, rekatkan cuplikan ini:
Sub F9Handler()
Application.Calculate
Beep
End Sub
Inilah yang sekarang akan dijalankan ketika Anda menekan F9. Baris pertama menjalankan Application.Calculate
(yang biasanya dilakukan F9), lalu Beep.
Simpan semuanya.
Catatan: Anda mungkin harus mengaktifkan makro dan / atau menjadikan dokumen itu dokumen "tepercaya" untuk memastikan makro berjalan seperti yang diharapkan.
Info lebih lanjut:
Sama seperti yang lain, gunakan beep
perintah dalam Visual Basic (VB):
Function beepNow()
Beep
End Function
Untuk mendapatkan kode VB, Anda perlu membuatnya Developer tab
tersedia (lihat: Membuat tab Pengembang terlihat )
Jadi, ketika Anda memiliki perubahan dalam sel atau kondisi, itu akan berbunyi bip. Contoh makro untuk memanggil kode VBS di atas:=IF(C2<>C3,beepNow(),"")
Atau dengan menempatkan modul di ss, Anda bisa memasukkannya ke Personal.xlsb Anda. Ini akan memungkinkan Anda untuk memiliki "bip" yang tersedia untuk ss. Untuk menjalankannya, modifikasi Bilah Alat Akses Cepat atau masukkan tombol / bentuk untuk mengklik ss Anda dan menetapkan makro untuknya.
Jawaban yang diposting oleh @ Ƭᴇcʜιᴇ007 adalah jawaban yang sangat bagus dengan satu pengecualian yang dikomentari oleh orang lain: Beep
metode ini bergantung pada speaker onboard Anda (dan terkadang dinonaktifkan) di dalam komputer dan tidak menggunakan speaker Anda, sehingga Anda mungkin tidak mendengar apa pun.
Saya memposting solusi berdasarkan jawaban itu. Jika ada lebih sedikit konten yang terlibat saya akan memposting komentar.
Inilah yang saya gunakan untuk memutar suara dengan VBA di Windows. Ia menggunakan pengeras suara komputer biasa Anda, bukan onboard, dan pengeras suara yang sering dinonaktifkan diakses dengan Beep
metode ini.
Mulailah dengan jawaban oleh @ Ƭᴇcʜιᴇ007. Ubah saja Beep
ini:
PlaySound sound_Up
Anda dapat mengubah suara dengan mengubah sound_Up
ke item lain dari enumerasi SoundType (daftar) dalam kode di bawah ini seperti sound_Complete
atau sound_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