Great job, and thank you, @rbernon for your contribution. I did quick tests on the built version, and here's the result.
### Problem Type-1 Input: a{Enter} Expected: あ Actual: ああ
Status (Wordpad): Fixed by these commits. Status (Excel): Fixed by these commits. Status (VBA): Remains to always happen.
### Problem Type-2 Input: nihongo n Expected: 日本語n Actual: 日本語
Status: Remains to happen at some probability.
### Problem Type-3 Input: aa{BackSpace}{BackSpace} Expected: Actual: あ
Status: Fixed by these commits.