I need to create a function (in VBA) that will return me a future date that is on the same day as the original date. So in essence I want to predict a future date as close to the same day as the original date as possible while still a workday e.g.

Today is 13 March 2014 and it is a Thursday so function could look something like this
nNewDate = NextDate(dToday, 30, +1/-1)
Take todays date and add 30 days to it which would take us to 12 April 2014 but this is a Saturday so the nearest Thursday to this date would be 10 April 2014 so the return date should be 10 April 2014. But this is only the first part...

The third parameter is something like +1/-1. If the date calculated falls on a public holiday the date returned should be the the previous workday (for a -1) or the next workday (for a +1). This part will have to use the Workday function of Excel because it can give the previous workday or the next workday and it can take a range of dates (public holidays) that will be excluded.

Hope this makes sense. Any pointers in the right direction?