Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 12:10   #1
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию Convert VBA code to .exe

Добрый день!

возможно ди сконвертрровать код VBA в exe file?
В качестве кода, например, следующая процедура:
Код:
Sub OpenWB ()
Workbooks.open "C:\Test.xlsx"
End Sub

Последний раз редактировалось Jarik; 30.03.2011 в 12:15.
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 12:19   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Можно "сконвертировать" vbs, но синтаксис будет чуть другой:
Код:
CreateObject("Wscript.Shell").Run "C:\Test.xlsx"
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.03.2011 в 12:23.
Hugo121 вне форума Ответить с цитированием
Старый 30.03.2011, 12:30   #3
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

Спасибо, немного не то. Можно запустить VBA через Cscipt.exe, но в каком формате подсовывать ему код на VB в качестве параметра?
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 13:03   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Можно запустить VBA через Cscipt.exe
Код VBA работает только из приложения, для которого он написан.

Вам нужен вручную переписать код (в VBS), чтобы использовать его таким образом.
EducatedFool вне форума Ответить с цитированием
Старый 30.03.2011, 13:19   #5
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

Спасибо большое за ответ!
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 13:48   #6
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

Буду признателен, если кто-то посоветует хорошую ссылку по VB script применительно к excel application. До этого кодил только на VBA. В принципе, мне нужно понимать, могу ли я написать скрипт в VBS который запускает определенный макрос из определенной excelевской книги.
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 14:01   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open ("C:\test.xls")
wb.Application.OnTime Now, "Macro1"
objExcel.Quit
Quit по обстоятельствам.
Но это будет открыт другой экземпляр Экселя (и кстати настройки безопасности не влияют на выполнение макроса).
Т.к. другой экземпляр - с копипастом проблемы.
Но можно подключится к существующему экземпляру - но код будет сложнее.
Вложения
Тип файла: zip UsingExcel.zip (2.9 Кб, 17 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.03.2011 в 14:05.
Hugo121 вне форума Ответить с цитированием
Старый 30.03.2011, 15:07   #8
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

спасмбо, я чувствую, что уже близко к решению. Мне как раз надо, чтобы макрос запускался из уже открытой книги. А так получается, что макрос выполняется с read onle копией.
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 17:25   #9
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

Следующий код не работает. Помогите понять, что не так.
Код:
Dim ExcApp as Object 
Set ExcApp= GetObject ("C:\Users\vishnyakov\Desktop\TEST.xlsm", "Excel.Application")
ExcApp.Run "TestMacro"
Jarik вне форума Ответить с цитированием
Старый 30.03.2011, 17:43   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это vbs? В vbs нет типов.

Так попробуйте - или откроет в открытом Экселе, или создаст новый Эксель:
Код:
Dim objExcel

ActivateExcel

Set wb = objExcel.Workbooks.Open ("C:\test.xls")
wb.Application.OnTime Now, "Macro1"

Private Function ActivateExcel()
On Error resume next 
Set objExcel = GetObject(, "Excel.Application")
If objExcel Is Nothing Then
   Set objExcel = CreateObject("Excel.Application")
   objExcel.Visible = false 'True
End If
End Function
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.03.2011 в 17:49.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QT convert txt to PDF cppta Qt и кроссплатформенное программирование С/С++ 3 09.03.2010 15:22
Преобразование VBA в BB CODE Aent Microsoft Office Excel 3 17.08.2009 04:42
Номера строк. [Code][/code] AngelOfDeath О форуме и сайтах клуба 4 11.12.2008 11:57
*.prn convert > ??? CHer0BuK Помощь студентам 2 19.05.2008 12:14
Convert Voucik Общие вопросы .NET 2 14.04.2008 14:16