Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».
Чтобы использовать пример ниже, откройте новую книгу.
Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.
-
Откройте вкладку Разработчик и щелкните элемент Visual Basic.
-
В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook. Если вы не видите обозреватель Project, перейдите в > Project проводникаили нажмите CTRL+R.
-
В окне модуля, которое открывается справа, вставьте следующий код:
Private Sub Workbook_Open() ' Put your code here End Sub
-
В конце и подмножите записи в процедуру Sub.
Закройте редактор Visual Basic (вам не нужно ничего сохранять).
-
Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.
При следующем запуске книги код, добавленный в Workbook_Open, будет работать автоматически.
Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Для этого:
-
В меню выберите пункт Параметры Excel >… >ленты & панели инструментов.
-
В категории Настройка ленты в списке Основные вкладки выберите вариант Разработчик.
-
Нажмите кнопку Сохранить.
Чтобы использовать пример ниже, откройте новую книгу.
Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.
-
Откройте вкладку Разработчик и щелкните элемент Visual Basic.
-
В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook.
-
В окне модуля, которое открывается справа, вставьте следующий код:
Private Sub Workbook_Open() ' Put your code here End Sub
-
В конце и подмножите записи в процедуру Sub.
Закройте редактор Visual Basic (вам не нужно ничего сохранять).
-
Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.
При следующем запуске книги код, добавленный в Workbook_Open, будет работать автоматически.
Improve Article
Save Article
Like Article
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 — раздел Основные — в правом окне ставим галочку Показывать вкладку Разработчик на ленте
Как мы видим, здесь большой выбор инструментов, от возможности зайти в Visual Basic до вставки объекта, например, кнопки.
Запуск макроса можно осуществить нажатием второй кнопки слева Макросы.
Появится окно для выбора макроса
Выбираем нужный — жмем выполнить.
Запуск макроса в Excel. Горячие клавиши
Открытие окна выбора макроса можно осуществить через горячую клавишу Alt + F8. А зайти в окно редактирования макроса сочетанием Alt + F11.
Причем если в окне выбора выделить нужный макрос и нажать Параметры, то к макросу можно привязать сочетание клавиш.
В данным случае ctrl + Ё.
Автозапуск макроса при открытии книги
Зайдите в окно редактирования макроса Alt + F11 или нажмите кнопку Просмотр кода на панели Разработчик.
У вас откроется VBA. Ваш макрос (особенно записанный макрорекордером) будет храниться в отдельном отделе модулей в левой панели.
Для того, чтобы макрос запускался при открытии книги, его надо перенести в раздел эта книга.
Копируйте тело макроса из правого окна (между 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 |
файл с макросом — в папку XLSTART фрилансер Excel, VBA — контакты в профиле |
Не получается так. |
|
ikki Пользователь Сообщений: 9709 |
гм?.. пс. про Personal.xls я вообще не говорил. это то же самое? фрилансер Excel, VBA — контакты в профиле |
Может кто-нибудь знает как обработать «УПАВШИЕ» в EXCEL данные из другого приложения с помощью макросов? |
|
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Вы что, хотите сказать, что при открытии Ёкселя, когда автоматом создаётся ещё не сохраненная нигде пустая Книга1, у вас не открывается, лежащий в папке XLSTART файл Personal.xls и не отрабатываются его события? С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
ИМЕННО ТАК, ПОПРОБУЙТЕ САМИ. |
|
ran Пользователь Сообщений: 7091 |
Тоже засомневался и проверил. |
может быть, я чего-то не понимаю, охота разобраться, т.к., хоть до сих пор не использовал такую возможность, но сейчас, благодаря этому форуму, кажется, нашёл реальное применение в своей работе. |
|
Serge Пользователь Сообщений: 11308 |
При выгрузке из 1С не происходит события открытия (запуска) Экса. |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Не поленился, проверил. С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
слэн Пользователь Сообщений: 5192 |
попробуйте грузить в ворд — там шаблон всегда грузится, а в нем можно макрос запускать |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
{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} КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ, ПОТОМ ЗАСТАВИТЬ ЕГО ИСКАТЬ, ЧТОБЫ ЗАПУСТИЛСЯ МАКРОС… ИЛИ В ПРИЛОЖЕНИИ КОВЫРЯТЬСЯ, ЕСЛИ ОНО ПОЗВОЛИТ… |
|
Hugo Пользователь Сообщений: 23252 |
А может vbs запустить? Set objExcel = GetObject(, «Excel.Application») |
ran Пользователь Сообщений: 7091 |
Из файнридера не грузится. |
Mijver: «КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ». И не иначе — вы указываете Абби куда передать распознанное, вызывается соответствующее приложение и в него помещаются данные, как вы с ними согласились — запомнили. Нет, назад в Абби, правите в Абби, и снова передача… Во всяком случае даже по «короткой» дорожке (зависит от версии)- автоматом распознать и передать в XL — требуется сохранять под указанным именем. Или что-то не договаривают… |
|
СПАСИБО ЗА ОБСУЖДЕНИЕ. |
|
Не думал, что это может кого-то раздражать. Извините, если что не так. Я думал здесь не буквы читают а мысли. |
|
Юрий М Модератор Сообщений: 60581 Контакты см. в профиле |
{quote}{login=Mijver}{date=28.03.2011 11:09}{thema=Re: }{post}Я думал здесь не буквы читают а мысли.{/post}{/quote} |
ikki Пользователь Сообщений: 9709 |
вот, встретил у Уокенбаха: переключатель командной строки /automation фрилансер Excel, VBA — контакты в профиле |
ZVI Пользователь Сообщений: 4328 |
Из других приложениий Excel, как правило, запускается в режиме автоматизации через CreateObject(«Excel.Application»). При этом создается отдельный объект (класса) Excel без загрузки надстроек, кроме COM-надстроек. То есть, если создать свою COM-надстройку и подключить её к Excel, то такая надстройка, в принципе, позволит контролировать Excel. |
dimaqw Пользователь Сообщений: 1 |
#23 28.05.2012 12:50:31 думаю оно. во всяком случая очень нужная вещь: http://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-knige/ |