To keep it fairly simple ( to try at least ) :
A virtual machine will virtualize the host hardware to run the software part. Meaning that a VM is just an interface between your real hardware and the virtualised one, which will be used for software.
Meanwhile, an emulator will also emulate the hardware part and therefore won’t rely on the host one.
This difference allow emulators to use a PC to emulate a device with a totally different architecture ( consoles for exemple ), while a VM won’t be able to
Latest Answers