Вставить файл EXE в файл Excel - PullRequest
9 голосов
/ 28 ноября 2011

Я использую:

retVal = Shell("program.EXE " & filename, vbNormalFocus)

Для выполнения программы нужна моя таблица Excel.

Можно ли встроить EXE-файл в сам файл Excel?

А как мне тогда выполнить это?

Ideias:

1 - Некоторая функция bin2str для преобразования двоичного кода в строку (поэтому я могу сохранить ее в программе как переменную и str2bin (опозиция)

2 - Я читал кое-что о OLE Control (что вы можете встроить в него), но я действительно не знаю, с чего начать

Ответы [ 2 ]

9 голосов
/ 28 ноября 2011

Вот схематичное решение, которое позволяет избежать OLE:

  1. Создать скрытый рабочий лист.
  2. Использовать закодированное основание 64 для преобразования exe в текст.
  3. Storeэтот текст в ячейках листа на скрытом листе.Поскольку количество ячеек в ячейке ограничено (32 767), вам нужно разбить строку на куски.

Очевидно, что вам потребуется отменить эту процедуру, если вы хотите сохранить ивыполнить исполняемый файл.

3 голосов
/ 19 мая 2014

Вы можете сделать это, используя: Вставить> Объект и затем выбрав «Создать из файла».

Чтобы добавить его на свой лист с помощью VBA:

Dim o As OLEObject
Set o = ActiveSheet.OLEObjects.Add(Filename:="C:\program.exe")

Тогда это команда для запуска программы.exe:

o.Verb Verb:=xlPrimary

Однако не знаю, как передать ему аргументы (например, ваш filename).

Примечание. Ненадежные приложения выдают предупреждение при запуске.

...