Запуск макроса excel при запуске файла

Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Чтобы использовать пример ниже, откройте новую книгу.

Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.

  1. Откройте вкладку Разработчик и щелкните элемент Visual Basic.

    Группа "Код" на вкладке "Разработчик"

  2. В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook. Если вы не видите обозреватель Project, перейдите в > Project проводникаили нажмите CTRL+R.

    Модуль ThisWorkbook в редакторе Visual Basic (VBE)

  3. В окне модуля, которое открывается справа, вставьте следующий код:

    Private Sub Workbook_Open()
    
    ' Put your code here
    
    End Sub

  4. В конце и подмножите записи в процедуру Sub.

    Закройте редактор Visual Basic (вам не нужно ничего сохранять).

  5. Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.

При следующем запуске книги код, добавленный в Workbook_Open, будет работать автоматически.

Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Для этого:

  1. В меню выберите пункт Параметры Excel >… >ленты & панели инструментов.

  2. В категории Настройка ленты в списке Основные вкладки выберите вариант Разработчик.

  3. Нажмите кнопку Сохранить.

Чтобы использовать пример ниже, откройте новую книгу.

Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.

  1. Откройте вкладку Разработчик и щелкните элемент Visual Basic.

  2. В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook.

  3. В окне модуля, которое открывается справа, вставьте следующий код:

    Private Sub Workbook_Open()
    
    ' Put your code here
    
    End Sub

  4. В конце и подмножите записи в процедуру Sub.

    Закройте редактор Visual Basic (вам не нужно ничего сохранять).

  5. Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.

При следующем запуске книги код, добавленный в Workbook_Open, будет работать автоматически.

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    To run a macro automatically when the workbook opens one must enable the developer’s tools in Microsoft excel.

    Steps to enable the developer’s tool:

    Step 1: Go to File > Options > Customize Ribbon

    Step 2: Then checkmark the Developer’s tool option in the customize ribbon option.

    Now you can record Macro, run Macro and do everything that a developer can do.

    Steps to run macro automatically when the workbook opens:

    Step 1: Go to the developer’s menu and then go to the visual basic.

    Step 2: Go to ThisWorkbook Tab.

    Step 3: Write down Private Sub Workbook_open() and hit enter. You will then see the below screen.

    You can write your code or basically whatever you want between this and it will automatically run every time the workbook is opened.

    Let us make a Welcome Message Box:

    Step 4: Save the workbook as Excel Macro-Enabled Workbook.

    Note: If you don’t save it as an Excel macro-enabled workbook then it will not save the macros and it will simply save as a normal excel file.

    Output:

    Now, whenever you open this workbook you will see this message box pops up automatically.

    Like Article

    Save Article

    Если вы часто пользуетесь макросами в MS Excel, то уверен, у вас не раз возникал вопрос: «Как быстро запустить написанный макрос?». Можно привязать горячую клавишу, например. Так же мы расскажем, как сделать так, чтобы макрос был доступен из любого файла Excel и можно было сделать быстрый запуск макроса в Excel.

    Если вы не знаете о чем идет речь, то советую прочитать специальную статью. Если коротко, макрос — это список действий, записанных при помощи «языка» VBA. Очень удобно записать такую последовательность, если вы часто выполняете одни и те же операции (их можно записать специальным инструментом — макрорекордером). Макрос будет выполнять их при нажатии одной кнопки.

    Содержание

    • Где посмотреть полившийся макрос и запустить его?
    • Запуск макроса в Excel. Горячие клавиши
    • Автозапуск макроса при открытии книги
    • Дополнительные возможности запуска макроса при действии с книгой
    • Дополнительные возможности запуска макроса при действии с листом
    • Похожие статьи

    Где посмотреть полившийся макрос и запустить его?

    Самый удобный способ работы с макросами и связанными инструментами — вывести вкладку Разработчик на панель инструментов

    Запуск макроса в Excel

    Включается он несложно — заходим в левую, верхнюю кнопку Параметры Excel — раздел Основные — в правом окне ставим галочку Показывать вкладку Разработчик на ленте

    Как мы видим, здесь большой выбор инструментов, от возможности зайти в Visual Basic до вставки объекта, например, кнопки.

    Запуск макроса можно осуществить нажатием второй кнопки слева Макросы.

    Появится окно для выбора макроса

    Запуск макроса

    Выбираем нужный — жмем выполнить.

    Запуск макроса в Excel. Горячие клавиши

    Открытие окна выбора макроса можно осуществить через горячую клавишу Alt + F8. А зайти в окно редактирования макроса сочетанием Alt + F11.

    Причем если в окне выбора выделить нужный макрос и нажать Параметры, то к макросу можно привязать сочетание клавиш.

    Запуск макроса 2

    В данным случае ctrl + Ё.

    Автозапуск макроса при открытии книги

    Зайдите в окно редактирования макроса Alt + F11 или нажмите кнопку Просмотр кода на панели Разработчик.

    У вас откроется VBA. Ваш макрос (особенно записанный макрорекордером) будет храниться в отдельном отделе модулей в левой панели.

    Запуск макроса 3

    Для того, чтобы макрос запускался при открытии книги, его надо перенести в раздел эта книга.

    Копируйте тело макроса из правого окна (между Sub и End Sub)

    Автозапуск макросов

    Выберите в левой панели ЭтаКнига (двойным левым кликом).

    Как запустить макрос Эксель при открытии файла

    В верхних панелях выбираем Workbook и признак включения макроса Open (открытие книги получается).

    Копированный текст макроса из модуля вставляем между Private Sub и End Sub. Сохраняем. Закрываем VBA.

    Готово! Запуск макроса будет происходить при открытии книги.

    Не забудьте сохранить книгу с поддержкой макросов (xlsm или xlsb).

    Дополнительные возможности запуска макроса при действии с книгой

    Как вы могли увидеть при выборе Workbook в правом окне выбора доступно множество вариантов. Ниже команды, которые запускают макрос при действии с книгой:

    • Activate — при активации книги (при переходе из другого окна в эту книгу);
    • Deactivate — при переходе в другую книгу;
    • BeforeClose — перед закрытием книги;
    • BeforePrint — перед печатью книги;
    • BeforeSave —  при сохранении книги;
    • NewSheet — при создании нового листа книги.

    Дополнительные возможности запуска макроса при действии с листом

    По аналогии с предыдущим пунктом, такие же действия можно привязать к определенному листу. Ниже команды, которые запускают макрос при действии с листом:

    • SheetActivate — при активации листа книги;
    • SheetDeactivate — при переходе на другой лист книги;
    • SheetCalculate — при пересчете формул на листе;
    • SheetBeforeDoubleClick — перед двойным кликом мыши;
    • SheetBeforeRightClick — перед кликом правой кнопкой мыши;
    • SheetChange — при изменение на листе

    Если необходимо запустить макрос при изменении в ячейке — подробная инструкция есть в этой статье.

    Готов ответить на вопросы в комментариях!

    Добавлю к ответу igumnov.

    Код необходимо вставить в модуль ЭтаКнига (Для Word — ThisDocument)

    Alt+F11 — открываем проект VBA.
    Слева — окно проекта, модуль находится там, в папке Microsoft Excel Objects

    Исполняемый макрос записывается в общий модуль (в папке Modules).

    Если модуля нет, его нужно создать: в редакторе VBA вкладка Insert-Module

    Если окна проекта нет, открыть — меню Viev-Project Explorer (Ctrl+R)

    Если макросы запрещены, никакими внутренними встроенными средствами поменять уровень безопасности нельзя. В VBA тоже нет такой команды. Это противоречило бы логике защиты: запрещаем макросы, но тем же макросом их разрешаем.

    Поменять уровень безопасности вручную:

    Для Excel-2003: меню Сервис-Макрос-Безопасность

    Для Excel-2010 глубже: закладка ленты Файл-Параметры-Центр_управления_безопасностью-Параметры_центра_управления_безопасностью-Параметры_макросов

    Программно менять уровень безопасности можно, но перед этим нужно установить на компьютер скрипт, который «умеет» менять уровень безопасности. Такие программы есть в свободном доступе.

     

    Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске.

     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    файл с макросом — в папку XLSTART  
    сам макрос — в процедуру Workbook_Open на лист макросов Эта книга

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Не получается так.    
    Книга, которую создают такие приложения, не записана на диск еще. Потому код из Personal.xls не выполняется когда создается такой сеанс EXCEL…

     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    гм?..  
    честно говоря, не пробовал, нужды пока нет.  
    но, чисто теоретически, Экс должен открывать все файлы из папки XLStart при любом запуске.  

      пс. про Personal.xls я вообще не говорил. это то же самое?

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Может кто-нибудь знает как обработать «УПАВШИЕ» в EXCEL данные из другого приложения с помощью макросов?

     

    Alex_ST

    Пользователь

    Сообщений: 2746
    Регистрация: 22.12.2012

    На лицо ужасный, добрый внутри

    Вы что, хотите сказать, что при открытии Ёкселя, когда автоматом создаётся ещё не сохраненная нигде пустая Книга1, у вас не открывается, лежащий в папке XLSTART файл Personal.xls и не отрабатываются его события?  
    Что-то с трудом верится…  
    Ну, если даже почему-то вдруг и не срабатывает обработчик события Workbook_Open, расположенный в модуле книги файла Personal.xls, то попробуйте использовать вместо него обработчик события Auto_Open в стандартном модуле.

    С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!)
    <#0>

     

    ИМЕННО ТАК, ПОПРОБУЙТЕ САМИ.  
    Макрос с именем «auto_open» будет выполняться при каждом открытии книги, содержащей макрос, вручную.

     

    ran

    Пользователь

    Сообщений: 7091
    Регистрация: 21.12.2012

    Тоже засомневался и проверил.  
    Если при закрытом Экселе передать из файнридера файл в эксел, создается новая книга, и в редакторе VB — только один проект. Персонал.xls у меня нет, но надстройки не подключаются.

     

    может быть, я чего-то не понимаю, охота разобраться, т.к., хоть до сих пор не использовал такую возможность, но сейчас, благодаря этому форуму, кажется, нашёл реальное применение в своей работе.  
    так вот. как я понимаю, Personal.xls — это обычный файл Excel. Но если он называется именно так (в любой версии) и расположен в папке XLStart, то он служит т.н. «личной книгой макросов» — т.е. открывается автоматически при запуске Excel и макросы, находящиеся в нём, будут доступны в любой книге.  
    если же в вашем варианте такой файл не открывается, тогда, наверное, есть разница между запуском Excel’я и созданием нового объекта Excel’я в другом приложении? т.е. тогда Excel как бы «не запускается».  
    перечитал… сумбурно немножко… но по-другому что-то не получается выразиться :)

     

    Serge

    Пользователь

    Сообщений: 11308
    Регистрация: 01.01.1970

    При выгрузке из 1С не происходит события открытия (запуска) Экса.  
    Вы об этом?

     

    Alex_ST

    Пользователь

    Сообщений: 2746
    Регистрация: 22.12.2012

    На лицо ужасный, добрый внутри

    Не поленился, проверил.  
    Понаставил у себя в Personal.xls MsgBox’ов в Workbook_Open и в Auto_Open …  
    Сохранил скрин экрана с таблицей Ёкселя в ДжиПег. Распознал в файнридере и велел ему передать распознанный проект в Ёксель.  
    Нифига не появились MsgBox’ы … Посмотрел в VBE — только этот проект и открыт и больше ничего — ни Персонала, ни одной надстройки…  
    Даже при уже открытом Ёкселе и объявленном в декларациях модуля книги Personal.xls объекте Application для отлавливания событий в других книгах Private WithEvents App As Application событие App_NewWorkbook при передаче на анализ в Ёксель из файнридера НЕ ВОЗНИКАЕТ!  
    Тут надо ждать гуру. Может, что посоветуют…

    С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!)
    <#0>

     

    слэн

    Пользователь

    Сообщений: 5192
    Регистрация: 16.01.2013

    попробуйте грузить в ворд — там шаблон всегда грузится, а в нем можно макрос запускать

     

    Alex_ST

    Пользователь

    Сообщений: 2746
    Регистрация: 22.12.2012

    На лицо ужасный, добрый внутри

    {quote}{login=The_Prist}{date=28.03.2011 10:05}{thema=}{post}…Сторонние приложения запускают Excel типа в безопасном режиме(вроде как с зажатой клавишей Shift). Так что все макросы и надстройки игнорируются {/post}{/quote}  
    Дмитрий, спасибо за информацию.  
    На чём бы узелок завязать чтобы вспомнить когда понадобится…?  
    (борода уже вся в узелках :)

    С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!)
    <#0>

     

    {quote}{login=Mijver}{date=27.03.2011 01:54}{thema=Запуск макроса при любом старте EXCEL}{post}Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске.{/post}{/quote}  

      КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ, ПОТОМ ЗАСТАВИТЬ ЕГО ИСКАТЬ, ЧТОБЫ ЗАПУСТИЛСЯ МАКРОС… ИЛИ В ПРИЛОЖЕНИИ КОВЫРЯТЬСЯ, ЕСЛИ ОНО ПОЗВОЛИТ…

     

    Hugo

    Пользователь

    Сообщений: 23252
    Регистрация: 22.12.2012

    А может vbs запустить?  

      Set objExcel = GetObject(, «Excel.Application»)  
    set ws=objExcel.sheets(1)  
    msgbox ws.cells(1,1).value

     

    ran

    Пользователь

    Сообщений: 7091
    Регистрация: 21.12.2012

    Из файнридера не грузится.

     

    Mijver: «КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ». И не иначе — вы указываете Абби куда передать распознанное, вызывается соответствующее приложение и в него помещаются данные, как вы с ними согласились — запомнили. Нет, назад в Абби, правите в Абби, и снова передача… Во всяком случае даже по «короткой» дорожке (зависит от версии)- автоматом распознать и передать в XL — требуется сохранять под указанным именем. Или что-то не договаривают…  
    -96602-

     

    СПАСИБО ЗА ОБСУЖДЕНИЕ.    
    Я ХОТЕЛ «НЕ ТЕРЯТЬ ИНИЦИАТИВУ» —    
    ТАК ЭТО НАЗЫВАЕТСЯ В СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ:    
    ЕСЛИ ЧЕЛОВЕК НАЖАЛ КНОПКУ, ТО ХОТЕЛОСЬ ИЗ ЭТОГО НАЖАТИЯ ВЫЖАТЬ МАКСИМУМ.    
    НО ВИНДОУС ТАК УСТРОЕН — ЧТОБЫ ЧЕЛОВЕК СИДЕЛ ОКОЛО НЕГО И НАЖИМАЛ КНОПКИ КАКИЕ НАДО И НЕ НАДО… ЛИШЬ БЫ ПОБОЛЬШЕ

     

    Не думал, что это может кого-то раздражать. Извините, если что не так. Я думал здесь не буквы читают а мысли.

     

    Юрий М

    Модератор

    Сообщений: 60581
    Регистрация: 14.09.2012

    Контакты см. в профиле

    {quote}{login=Mijver}{date=28.03.2011 11:09}{thema=Re: }{post}Я думал здесь не буквы читают а мысли.{/post}{/quote}  
    Вы ошиблись — здесь помогают по Excel.

     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    вот, встретил у Уокенбаха:  

      переключатель командной строки /automation  
    Excel запускается без подключения надстроек и шаблонов, а также загрузки файлов из папки Xlstart или любой другой папки автозагрузки. Этот переключатель используется для «чистой начальной загрузки» Excel.

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    ZVI

    Пользователь

    Сообщений: 4328
    Регистрация: 23.12.2012

    Из других приложениий Excel, как правило, запускается в режиме автоматизации через CreateObject(«Excel.Application»). При этом создается отдельный объект (класса) Excel без загрузки надстроек, кроме COM-надстроек. То есть, если создать свою COM-надстройку и подключить её к Excel, то такая надстройка, в принципе, позволит контролировать Excel.

     

    dimaqw

    Пользователь

    Сообщений: 1
    Регистрация: 01.01.1970

    #23

    28.05.2012 12:50:31

    думаю оно. во всяком случая очень нужная вещь:   

    http://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-knige/

    Like this post? Please share to your friends:
  • Запуск макроса excel безопасность
  • Запуск макроса excel 2010
  • Запуск макрос excel 2010
  • Запуск запроса в excel
  • Запуск активного содержимого отключен excel