I was just trying to do nearly the exact same thing, albeit from Ubuntu. I didn't want to create an image of the entire hard drive, and it didn't seem like a good idea to me to use the physical disk with the VM. I finally found the solution:
(Recommended) If you don't have a Windows disc or ISO, download an ISO. I used X17-59465.iso
If desired, shrink the windows partition so the image size will be smaller. I prefer to do this from Linux using GParted (to avoid "umovable" files that are in use), then reboot to Windows, let it do a chkdsk, and reboot back into Linux.
If mounted, unmount the windows partition just to make sure it doesn't change while imaging it
sudo umount /windows
Install the MBR package. On Ubuntu:
sudo apt-get -y install mbr
Create an image of the MBR (change the device as necessary)
sudo dd if=/dev/sda of=mbr.img bs=512 count=1
Install a fresh MBR on the image, to get rid of GRUB
sudo install-mbr mbr.img
Create a raw VMDK image that will mirror the existing partition layout (change the device and partition as necessary)
sudo vboxmanage internalcommands createrawvmdk -filename windows.vmdk -rawdisk /dev/sda -partitions 2 -mbr mbr.img
Create a VDI image that will copy the data from the partitions selected in the previous step
sudo vboxmanage clonehd windows.vmdk windows.vdi --format VDI
Change the ownership of the new image file
sudo chown $USER. windows.vdi
Cleanup
sudo rm mbr.img windows.vmdk windows-pt.vmdk
(Optional) Compact the new disk image
vboxmanage modifyhd windows.vdi --compact
Create a new Windows 7 VM, using the image you just created for the hard drive
You can try to boot the VM, but it might fail. If it does, boot the VM to the Windows disc/ISO → Repair your computer, and if given the option click Repair and restart
Sources: