Я бы склонялся к решению с использованием сборки .NET, однако, это действительно зависит от ваших потребностей. Если вы просто извлекаете файл, загружаете его, и это все, что я хотел бы сделать .NET Assembly, поскольку вы можете просто использовать Process.Start (), чтобы показать его пользователю.
Если вы делаете серьезные изменения, вы можете получить НЕКОТОРЫЕ выигрыши в производительности, выполнив изменения через VBA и выбрав маршрут .NET-сборки, заключенной в COM, для фактического получения файла (ов).
Это зависит от того, какое конечное решение вы ищете.