You are correct in that they are different, but are very closely related. Emulators are programs that allow you to run programs from one CPU instruction set on another. For example, Intel and AMD CPU's run the x86 instruction set, while most phones and tablets use the ARM instruction set. An emulator will let you run x86 code on an ARM system, or the other way around. Unfortunately, other hardware has to have special support (video card, sound card, networking). It can also run x86 code on an x86 system. This is useful to run two operating systems on one computer at a type (such as Windows and Linux, MacOS and Windows, etc.).
A Virtual Machine is probably best explained by using the Java language as an example. When you write a Java program and compile it, it turns the readable code into something called "bytecode". Its similar to x86 and ARM in the sense that it breaks down instructions into the simplest possible form, however, its for a computer that doesn't exist, a "virtual" computer. The system is designed so a program called a "Virtual Machine" can easily run the instructions on any computer, no matter if its running on an x86 computer, or ARM computer, or is running Windows, Linux, MacOS, or Android.
Unfortunately I don't know. However, I think that most Android devices would have difficulty emulating MacOS since they have very limited CPU and RAM resources.
This depends on the emulator, but most definitely. For example, the Virtualbox x86 emulator provides devices to the emulated system to do just this.
Your English is quite good. No need to apologize for it
. I hope I was of some help.