Hi there

If you create a VM with VMware (I'm using version 16.2.1) on a windows physical VHDX file and you want UEFI the virtual disk that's initially created doesn't seem to have gpt or an efi partition.

The way to get round that is to assign a your Virtual disk with the option "I'll install the OS later".
Then boot into that VM from an ISO any OS you want that can initialise and partition disks e.g a Winpe iso, windows recovery iso or similar or even a Linux Live distro and initialise disk, convert to gpt, and create your EFI / msr partitions. Now you can then install your OS with the correct disk layout.

When using vmware it's better as well to allocate the whole virtual disk storage space initially rather than let it allocate in chunks and expand as needed. Virtual storage disks can become very fragmented over time when split into chunks -- and these days with large storage devices lack of storage for your OS shouldn't be a problem.

Running Virtual machines from a physical vhdx file makes a lot of sense if you want to move these VM's around etc -- simply copy / move the vhdx file to another machine. No activation problems either. You can also automate the mounting and allocation of the VHDX file(s) at Windows boot or start up time.

Cheers
jimbo