I've been doing this with a CentOs server on my VirtualBox
You will need to set the Virtual Machines network as a Bridged Adapter and choose the network adapter that you use network connections for.
Go into your Ubuntu box and it should automatically be assigned an address from DHCP, if not then you will need to set a static IP Address manually in Administration > Network.
Once you have your address, you can check for it using ifconfig then it will return a list of your network interfaces. Look out for eth0 and it's IP Address.
Take a note of this and enter it into your Vista OS' web browsers address bar, the Apache Screen should be showing, or whatever you have used in your www directory.
EDIT:
Since you are using port 80 already and that port is forwarded, what you can do is set the port on the Ubuntu Server to a different one, possibly 8080. Edit your configiration file which may be located at /etc/apache2/apche2.conf.
Then edit the Listen 80 to Listen 8080 and restart apache /etc/init.d/apach2 restart
You will then be able to see your Ubuntu installations server at ubuntuhostip:8080
Then simply create a new service in your routers firewall with the start port as 8080 and the end port as 8080 and then set the firewall rules but with the ubuntu ip address set on the 8080 service port.
This way you can access:
Vista Server: mainip
Ubuntu Server: mainip:8080