Wa'alaikumsalam mas @farud ...
Apa kabar mas? Semoga sehat selalu...
Untuk hal yang ditanyakan, merupakan hal lama yang ingin saya temukan solusi terbaiknya. Beberapa cara sudah saya coba, namun solusi dengan menggunakan teknik SubClassing atau dengan teknik Message Hook yang paling sesuai. Dari kedua teknik tersebut, menurut saya hanya dengan menggunakan teknik Message Hook yang paling aman dan mudah untuk diterapkan.
Beberapa hal yang perlu diketahui:
>> Teknik SubClassing ataupun Message Hook merupakan Low Level Processing, yang bertujuan untuk memotong (intercepting) alur proses sistem operasi. Kadangkala, hal ini bisa menyebabkan masalah seperti hang atau crash pada Excel, dikarenakan VBA Excel tidak berdiri sendiri, namun merupakan bagian dari aplikasi Excel (Hosted Application).
>> Oleh karena kedua teknik termasuk Low Level Processing, sangat disarankan untuk tidak melakukan Execution Break (menghentikan paksa) proses, misalkan dengan menakan tombol CONTROL+BREAK atau menekan tombol STOP pada toolbar VBE. Untuk menghentikan proses, pindah dahulu ke Worksheet lain, dengan demikian proses akan berhenti secara normal. Meskipun begitu, untuk teknik Message Hook yang saya gunakan pada file terlampir termasuk aman untuk dihentikan secara paksa (sudah saya coba), namun lebih baik menggunakan cara aman saja...
>> Script pada file terlampir menggunakan WinAPI untuk versi sistem operasi 32bit. Untuk sistem operasi 64bit, sepertinya akan ada bagian yang harus disesuaikan kembali. Diskusikan saja kembali jika ternyata scriptnya bermasalah pada sistem opeasi 64bit...
Contoh script pada file terlampir sudah saya gunakan cukup lama, dan termasuk aman. Referensinya saya dapatkan dari Github . Tidak perlu pusing dengan kedua teknik yang saya sebut di atas (silahkan Googling kalau penasaran). Cukup dicoba saja scriptnya, dan mudah-mudahan sesuai...
Demikian.