Страницы: 1
RSS
Запуск макроса при любом старте EXCEL
 
Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске.
 
файл с макросом - в папку XLSTART  
сам макрос - в процедуру Workbook_Open на лист макросов Эта книга
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Не получается так.    
Книга, которую создают такие приложения, не записана на диск еще. Потому код из Personal.xls не выполняется когда создается такой сеанс EXCEL...
 
гм?..  
честно говоря, не пробовал, нужды пока нет.  
но, чисто теоретически, Экс должен открывать все файлы из папки XLStart при любом запуске.  
 
пс. про Personal.xls я вообще не говорил. это то же самое?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Может кто-нибудь знает как обработать "УПАВШИЕ" в EXCEL данные из другого приложения с помощью макросов?
 
Вы что, хотите сказать, что при открытии Ёкселя, когда автоматом создаётся ещё не сохраненная нигде пустая Книга1, у вас не открывается, лежащий в папке XLSTART файл Personal.xls и не отрабатываются его события?  
Что-то с трудом верится...  
Ну, если даже почему-то вдруг и не срабатывает обработчик события Workbook_Open, расположенный в модуле книги файла Personal.xls, то попробуйте использовать вместо него обработчик события Auto_Open в стандартном модуле.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
ИМЕННО ТАК, ПОПРОБУЙТЕ САМИ.  
Макрос с именем "auto_open" будет выполняться при каждом открытии книги, содержащей макрос, вручную.
 
Тоже засомневался и проверил.  
Если при закрытом Экселе передать из файнридера файл в эксел, создается новая книга, и в редакторе VB - только один проект. Персонал.xls у меня нет, но надстройки не подключаются.
 
может быть, я чего-то не понимаю, охота разобраться, т.к., хоть до сих пор не использовал такую возможность, но сейчас, благодаря этому форуму, кажется, нашёл реальное применение в своей работе.  
так вот. как я понимаю, Personal.xls - это обычный файл Excel. Но если он называется именно так (в любой версии) и расположен в папке XLStart, то он служит т.н. "личной книгой макросов" - т.е. открывается автоматически при запуске Excel и макросы, находящиеся в нём, будут доступны в любой книге.  
если же в вашем варианте такой файл не открывается, тогда, наверное, есть разница между запуском Excel'я и созданием нового объекта Excel'я в другом приложении? т.е. тогда Excel как бы "не запускается".  
перечитал... сумбурно немножко... но по-другому что-то не получается выразиться :)
 
При выгрузке из 1С не происходит события открытия (запуска) Экса.  
Вы об этом?
 
Не поленился, проверил.  
Понаставил у себя в Personal.xls MsgBox'ов в Workbook_Open и в Auto_Open …  
Сохранил скрин экрана с таблицей Ёкселя в ДжиПег. Распознал в файнридере и велел ему передать распознанный проект в Ёксель.  
Нифига не появились MsgBox'ы … Посмотрел в VBE - только этот проект и открыт и больше ничего - ни Персонала, ни одной надстройки...  
Даже при уже открытом Ёкселе и объявленном в декларациях модуля книги Personal.xls объекте Application для отлавливания событий в других книгах Private WithEvents App As Application событие App_NewWorkbook при передаче на анализ в Ёксель из файнридера НЕ ВОЗНИКАЕТ!  
Тут надо ждать гуру. Может, что посоветуют...
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
попробуйте грузить в ворд - там шаблон всегда грузится, а в нем можно макрос запускать
Живи и дай жить..
 
{quote}{login=The_Prist}{date=28.03.2011 10:05}{thema=}{post}…Сторонние приложения запускают Excel типа в безопасном режиме(вроде как с зажатой клавишей Shift). Так что все макросы и надстройки игнорируются {/post}{/quote}  
Дмитрий, спасибо за информацию.  
На чём бы узелок завязать чтобы вспомнить когда понадобится...?  
(борода уже вся в узелках :)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=Mijver}{date=27.03.2011 01:54}{thema=Запуск макроса при любом старте EXCEL}{post}Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске.{/post}{/quote}  
 
КАК Я ПОНЯЛ - НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ "УПАВШИЙ" ИЗ ПРИЛОЖЕНИЯ, ПОТОМ ЗАСТАВИТЬ ЕГО ИСКАТЬ, ЧТОБЫ ЗАПУСТИЛСЯ МАКРОС... ИЛИ В ПРИЛОЖЕНИИ КОВЫРЯТЬСЯ, ЕСЛИ ОНО ПОЗВОЛИТ...
 
А может vbs запустить?  
 
Set objExcel = GetObject(, "Excel.Application")  
set ws=objExcel.sheets(1)  
msgbox ws.cells(1,1).value
 
Из файнридера не грузится.
 
Mijver: "КАК Я ПОНЯЛ - НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ "УПАВШИЙ" ИЗ ПРИЛОЖЕНИЯ". И не иначе - вы указываете Абби куда передать распознанное, вызывается соответствующее приложение и в него помещаются данные, как вы с ними согласились - запомнили. Нет, назад в Абби, правите в Абби, и снова передача... Во всяком случае даже по "короткой" дорожке (зависит от версии)- автоматом распознать и передать в XL - требуется сохранять под указанным именем. Или что-то не договаривают...  
-96602-
 
СПАСИБО ЗА ОБСУЖДЕНИЕ.    
Я ХОТЕЛ "НЕ ТЕРЯТЬ ИНИЦИАТИВУ" -    
ТАК ЭТО НАЗЫВАЕТСЯ В СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ:    
ЕСЛИ ЧЕЛОВЕК НАЖАЛ КНОПКУ, ТО ХОТЕЛОСЬ ИЗ ЭТОГО НАЖАТИЯ ВЫЖАТЬ МАКСИМУМ.    
НО ВИНДОУС ТАК УСТРОЕН - ЧТОБЫ ЧЕЛОВЕК СИДЕЛ ОКОЛО НЕГО И НАЖИМАЛ КНОПКИ КАКИЕ НАДО И НЕ НАДО... ЛИШЬ БЫ ПОБОЛЬШЕ
 
Не думал, что это может кого-то раздражать. Извините, если что не так. Я думал здесь не буквы читают а мысли.
 
{quote}{login=Mijver}{date=28.03.2011 11:09}{thema=Re: }{post}Я думал здесь не буквы читают а мысли.{/post}{/quote}  
Вы ошиблись - здесь помогают по Excel.
 
вот, встретил у Уокенбаха:  
 
переключатель командной строки /automation  
Excel запускается без подключения надстроек и шаблонов, а также загрузки файлов из папки Xlstart или любой другой папки автозагрузки. Этот переключатель используется для "чистой начальной загрузки" Excel.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Из других приложениий Excel, как правило, запускается в режиме автоматизации через CreateObject("Excel.Application"). При этом создается отдельный объект (класса) Excel без загрузки надстроек, кроме COM-надстроек. То есть, если создать свою COM-надстройку и подключить её к Excel, то такая надстройка, в принципе, позволит контролировать Excel.
 
думаю оно. во всяком случая очень нужная вещь:   
http://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-knige/
Страницы: 1
Читают тему
Наверх