Страницы: 1
RSS
Макросы как отдельный файл *.exe
 
Добрый день!  
Такой вопрос, подскажите пожалуйста, возможно ли написанный в Excel макрос создать как отдельный файл *.exe? Чтобы, например, при запуске этого файла, происходила как бы "установка" его на компьютер, но уже в любой открываемый документ Excel. И при открытии любой книги Excel этот макрос, например, был бы добавлен уже на верхнюю рабочую панель?
 
{quote}{login=LinaLee}{date=16.05.2012 06:07}{thema=Макросы в Excel}{post}... возможно ли написанный в Excel макрос создать как отдельный файл... {/post}{/quote}  
Все давно придумано до нас - персональная книга макросов - VBAProject(Personal.XLSB)... ;) -61751-
 
{quote}{login=Z}{date=16.05.2012 06:38}{thema=Re: Макросы в Excel}{post}{quote}{login=LinaLee}{date=16.05.2012 06:07}{thema=Макросы в Excel}{post}... возможно ли написанный в Excel макрос создать как отдельный файл... {/post}{/quote}  
Все давно придумано до нас - персональная книга макросов - VBAProject(Personal.XLSB)... ;) -61751-{/post}{/quote}  
 
Извините, немножко не так поставила вопрос). Чтобы потом этот макрос открывался на любом компьютере, после установки как файл типа *.exe?
 
В Excel exe-файл создать не получится.
 
Можно сделать надстройку, но устанавливать её нужно будет чуток сложней чем двойным нажатием... :)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
у себя на работе делал так  
1) создал надстройку  
2) vbs скрипт который копирует ее в пользовательскую папку надстроек  
3) в winrar создать самораспаковывающийся архив (SFX) - у него расширение будет exe - в параметрах sfx сжатия указываем  
куда распаковать (определеный путь или временая папка) - туда распакуются надстройка и скрипт  
какую команду после распаковки выполнить - тут указать путь к скрипту  
 
Готово. Единственная тонкость это узнать пользовательскую папку    
C:\documents&setings\[User]\Application Data\Microsoft\Addin\
пробовал узавать имя компьютера и использовать его вместо [User] но не на всех компьютерах имя папки совпадает с именем компьютера.
 
Так же данный метод не делает надстройку сразу активной в экселе - ее надо еще подключить. Но это вроде бы можно исправить - дописав нужный код в vbs.  
 
♥84454♥
 
Для "юзера" есть такой "стандартный" код:  
 
'### определяем user  
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")      
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer"  
strValueName = "Logon User Name"  
oReg.GetExpandedStringValue &H80000001, strKeyPath, strValueName, strValue  
msgbox strValue
 
Hugo, спасибо за код, пригодится.
Страницы: 1
Читают тему
Наверх