As MS support pointed out, you can't. Office requires that all Office apps be shut down before it'll run the setup program.
The only graceful way to do that is to ask each app to shut down by sending the close request to the active window. But this goes against your request that users not be notified since they would get a "are you sure" message and can say "No" which prevents the shutdown of the app. Even more complicated is the fact that Office supports being hosted out of process as a COM server. In that case there is no UI, you don't know what apps are using it and you cannot really shut it down.
You'll need to make a decision on how important this is to you. Do you want to ensure Visio gets removed even if you have to forcefully close Office apps or are you OK with Visio sticking around for a while. If you are OK with Visio sticking around for a while then create a RunOnce entry on each machine that silently runs the Visio uninstaller. Then the uninstaller will run the next time the machine is rebooted and should run before the user has time to start anything and hence Office won't be running. That is probably how I'd do it. An alternative is to create a scheduled task to do the same thing but have it run only once. In either case the user will eventually have to reboot to get it removed but then there should be no issues removing it.