IPC - приложение Excel и .Net - PullRequest
       7

IPC - приложение Excel и .Net

1 голос
/ 26 января 2011

Я пытаюсь определить небольшую функцию ZipDistance в VBA, которая вычисляет расстояние между двумя почтовыми индексами. Поскольку у меня есть такая функция в приложении .Net, для меня было бы проще всего запустить это приложение с правильными параметрами и затем прочитать результат обратно.

Параметры приложения .net - это два почтовых индекса (то есть целые числа), а результатом вычисления является целое число.

что-то вроде следующего будет работать нормально.

Dim ret as Integer
ret = Execute("my-net-app.exe 9000 8000")

Есть предложения, как это сделать? Все, что угодно, начиная с кода завершения, используя стандартный выход из приложения .net, заканчивая чтением файла и анализом этого файла в Excel, будет приемлемым Пока это довольно просто.

1 Ответ

1 голос
/ 29 января 2011

Функция, которую вы запрашиваете: Shell () в моем понимании. Но это не возврат вашего exe-файла, а "идентификатор задачи" приложения, согласно онлайн-справке. Для связи с вашим приложением вам нужна автоматизация, IMO.

Хорошо, если вывод вашего exe-файла может быть перенаправлен на консоль в текстовый файл (

Shell "my-net-app.exe 9000 8000 > g:\distance\result.txt"

), вы можете использовать старый добрый Open:

Dim intFile As Integer, strDistance As String
intFile = Freefile
Open "g:\distance\result.txt" For Input As #intFile
Input #intFile, strDistance
Close #intFile

Я даже не проверял детали синтаксиса, это просто чтобы показать путь. Я закончил чтение сложных файлов (перестроил TransferText таким образом), поэтому я знаю, что он работает.

Я бы не советовал. Это не способ передачи отдельных информационных фрагментов из программы в программу. Поскольку я не хотел бы хлопот с автоматизацией небольшой программы, подобной этой, я перестроил бы функцию в VBA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...