Автоматизация Excel с помощью Python
Автоматизация Excel с помощью Python
Уверенное владение Excel уже принято за норму, чем за исключение. И бизнес зачастую просто ни в каких других программах не работает с цифрами. Открыть excel-файл на телефоне в чате или гугл таблицах (тоже, кстати, отлично работает) намного проще, чем думать как запустить тетрадку jupyter notebook или целую программу на python.
(думается мне, после того как я разберусь с excel, напишу еще и про google sheets)
Ну, jupyter notebook это не та программа для телефона, скажете вы. Да, и вы правы, только наш бизнес сейчас весь на телефонах и совещаниях. Начальнику нужно быстренько взять открыть файл, сделать скрин и так далее.
И вот проходя множество курсов по анализу данных вы вряд ли найдете помимо экскурса в Python и SQL еще и Excel — все так стремительно хотят от него уйти, будто вы и так в нём хорошо работали.
Пока я училась поняла, что мало кто из студентов вообще понимает прелесть Excel. Они просто думают, что за Python будущее. Прежде чем мы действительно будем так думать, давайте разберемся с Excel.
Excel сейчас — это стандартная программа, которая ставится в комплекте Microsoft Office и есть на каждом ноутбуке (если её нет, найдется Libre, но смысл останется).
Там удобно посмотреть данные сразу, прокрутить, вставить один раз формулу и “протянуть” дальше. Построить быстренько несложные диаграммы из самостоятельно выбранных данных.
Одним проще написать код, а другим тыкнуть в цифру и еще раз в меню, а затем получить отличную визуализацию за пять минут без всяких импортов библиотек. А другие убеждены, что лучше справятся с визуализацией посредством кода.
Excel локальный, ему не нужен выход в интернет. Вы не пытаетесь вслепую прописать колонки, а сразу видите их вместе. Быстро их фильтруете, или с помощью условного форматирования быстренько обрабатываете данные как необходимо.
Но бывает и такое, что ты сидишь и думаешь “это можно сделать проще”, но, увы, не знаешь как.
Все эти “можно сделать проще” возможны с помощью макросов или power query, но это может быть слишком сложно или наоборот долго, ну, и я зачем мы владеем python?
Прежде чем мы перейдем к конкретной задаче, расскажу, что в Python с excel-документами можно и нужно работать с помощью pandas, openpyxl, xlrd, xlutils и pyexcel.
Друзья, обращаю ваше внимание, что в тексте приведен код для тех, у кого Excel на английском языке. В части с установкой xlwings я постаралась дать скриншоты и с русской версии. Но если у вас Excel на русском языке, пожалуйста, пишите формулы в скриптах на русском 🙂
Объединение нескольких excel-файлов
Да, эту задачу можно решить ручками или power query, где несколько таблиц передаете в запрос и объединяете.
Например, на работе вы можете работать с ежемесячными отчётами о продажах, и с 90% вероятностью вы будете заниматься консолидацией региональных отчётов. Однажды вас попросят подготовить не только сконсолидированный отчёт, но и найти/подсчитать общее количество продаж по всем этим отчетам — и всё как можно быстрее.
Вариант номер 1, описан выше. Excel, Power Query, добавляете отчёты, объединяете, открываете, смотрите.
Вариант номер 2. Excel, несколько таблиц, переносим вкладки в один документ, создаете еще одну вкладку с шаблоном, делаете подсчёты с помощью формул. Смотрите.
А можно Вариант номер 3. Объединить все excel-файлы в python, используя библиотеку pandas (да-да, pandas).
Устанавливаем pandas используя pip или conda в терминале:
И рассмотрим вариант работы с отчетом, который сделан по одному шаблону (например, придумаем самый простеньких отчёт о продажах фруктов).
- Файл 1: https://github.com/asaydn/excel-python/raw/master/january.xlsx
- Файл 2: https://github.com/asaydn/excel-python/raw/master/february.xlsx
- Файл 3: https://github.com/asaydn/excel-python/raw/master/march.xlsx
Можно заметить, что наш отчёт начинается не с первой ячейки, а только с 4-й строчки, поэтому нам понадобятся данные для импорта, начиная с этой строки (мне кажется, здорово такоё вариант учесть, потому что в работе часто такое встречается). В приведенном ниже коде мы будем использовать функции read_excel и append .
Давайте посмотрим на то, что мы сделали здесь:
- В первой части мы импортировали pandas , создали список со всеми url-адресами и сгенерировали пустой фрейм данных под названием merger
- Во второй части мы просмотрели каждый элемент списка (url-адрес) в files , чтобы прочитать каждый файл, пропустив первые три строчки ( skiprows = 3 ) и добавив его в объединенный датафрейм( merger ).
- В третьей части мы генерируем новый excel-файл с именем merger.xlsx , содержащий наши объединенные файлы!
Получение значений нескольких файлов
Давайте посмотрим на другой пример.
Скажем, нам нужно было получить итого только по Москве из каждого отчета о продажах и собрать их в список. Мы знаем, что сумма сохраняется в ячейке F5 в каждой книге.
Для этого примера мы будем использовать другую библиотеку — openpyxl . Вы можете установить её с помощью pip или conda, используя код ниже:
А теперь посмотрим код и что он выполняет:
Если вы хотите выполнить код ниже, то запускайте код после сохранения файлов, сохраните файлы по ссылкам выше на свой компьютер.
Давайте разберем это шаг за шагом, сначала мы:
- Создаем список ( files ), который содержит ссылки на все наши файлы. В Windows мы можем нажать Shift + правой кнопкой мыши и использовать Копировать как путь (или, Copy as Path), чтобы получить путь к файлу.
- И создаем пустой список для хранения наших значений ( values )
- Пишем цикл, который будет выполнять нужные нам манипуляции с каждым файлом:
— с помощью метода .load_workbook() загружаем файл
— используем ['Sheet1'] и ['F5'] для ссылки на имя листа, так и на ссылки на ячейки таблицы (на нужном нам листе в рабочей книге)
Если у вас Excel на русском языке, то вместо 'Sheet1' указывайте 'Лист1' .
— и используем атрибут .value , чтобы извлечь значение ячейки и добавить его в список values методом .append()
Применение формул в книгах
В каждом из excel-файлов у нас есть итоги по строкам, но это не общая сумма продаж. Опять же, мы можем открыть каждую книгу и добавить формулу ручками, или мы можем использовать python, чтобы сделать это для нас.
Мы снова будем использовать openpyxl . Если вам нужно установить его, сделайте это по инструкции выше.
- В этом фрагменте кода мы снова заполняем список файлов. Цикл for открывает каждый файл и присваивает соответствующее название листа.
- Затем мы присваиваем строку = SUM(F5: F8) ячейке F9 и используем атрибут style для назначения стиля ячейки. Больше стилей ячеек можно найти в официальной документации.
Если у вас Excel на русском языке, то вместо 'Sheet1' указывайте 'Лист1' и записывайте формулы соответственно на русском, например, =СУММ(F5:F8) .
Заставьте летать
А теперь я дополню эту связку, вот таким вот открытием — автоматизировать Excel, и по сути заменить VBA (в моём понимании) можно библиотекой xlwings.
Автор xlwings говорит, что библиотека “Make Excel Fly!”. Вы можете использовать xlwings + Python для следующих задач:
- Автоматизируйте Excel с помощью Python, например, создавая отчеты (другой пример описала выше)
- Напишите макросы на Python и запустите их из Excel, нажав на кнопку
- Напишите пользовательские функции в Python и вызовите эти функции из Excel так же, как и любую другую функцию Excel
Попробуем установить и рассмотреть несложный первый пункт. Пункты 2 и 3 рассмотрим в следующей серии.
Установка xlwings
Существует две части для установки xlwings: библиотека Python и надстройка Excel. Давайте начнем с установки библиотеки Python через командную строку:
Затем загрузите надстройку Excel из официального репозитория xlwings на Github. Это xlwings.xlam файл на странице (если вы вдруг будете читать эту статью через год, берите последнюю версию)
Положите xlwings.xlam-файл в папку надстройки Excel, которая является:
C:UsersxxxxAppDataRoamingMicrosoftAddIns
Xxxx — это ваше собственное имя пользователя на вашем компьютере.
У меня получилось так, что я могу сейчас показать как это работает в английской и в русской версии Excel.
Затем откройте Excel, Файл -> Параметры -> Надстройки (или File -> Options -> Add-ins), нажимаем кнопку “Перейти..” (Go..) выбирая Надстройки Excel (Excel Add-ins).
Обновление всех сводных таблиц в моей книге Excel с помощью макроса
У меня есть книга с 20 различными сводными таблицами. Есть ли простой способ найти все сводные таблицы и обновить их в VBA?
ОТВЕТЫ
Ответ 1
Или, если ваша версия Excel достаточно стар,
Ответ 2
Этот код VBA обновит все сводные таблицы/диаграммы в книге.
Другой непрограммный вариант:
- Щелкните правой кнопкой мыши на каждой сводной таблице
- Выбор параметров таблицы
- Отметьте параметр «Обновить при открытии» .
- Нажмите кнопку OK
Это будет обновлять сводную таблицу каждый раз, когда открывается рабочая книга.
Ответ 3
ActiveWorkbook.RefreshAll обновляет все, а не только сводные таблицы, но и запросы ODBC. У меня есть несколько запросов VBA, которые относятся к соединениям данных, и эта опция отключается, поскольку команда запускает соединения данных без деталей, предоставленных с помощью VBA
Я рекомендую эту опцию, если вы хотите, чтобы обновляемые опорные точки
Ответ 4
В определенных обстоятельствах вам может потребоваться провести различие между сводной таблицей и ее PivotCache. Кэш имеет собственный метод обновления и собственные коллекции. Таким образом, мы могли бы обновить все PivotCaches вместо сводных таблиц.
Разница? Когда вы создаете новую сводную таблицу, вас спрашивают, хотите ли вы ее на основе предыдущей таблицы. Если вы говорите «нет», эта сводная таблица получает свой собственный кеш и удваивает размер исходных данных. Если вы говорите «да», вы держите свой WorkBook маленьким, но вы добавляете в коллекцию сводных таблиц, в которых используется один кеш. Вся коллекция обновляется, когда вы обновляете любую сводную таблицу в этой коллекции. Вы можете себе представить, какова разница между обновлением каждого кеша в WorkBook по сравнению с обновлением каждой сводной таблицы в WorkBook.
Ответ 5
В панели инструментов сводной таблицы есть опция обновления. Этого достаточно. Не нужно ничего делать.
Нажмите ctrl + alt + F5
Ответ 6
У вас есть сводная таблица на объекте VB Worksheet. Итак, быстрый цикл, подобный этому, будет работать:
Заметки из траншей:
- Не забывайте снимать защищенные листы перед обновлением сводной таблицы.
- Сохранить часто.
- Я подумаю больше и обновляю со временем. )
Ответ 7
Код используется в активирующем модуле листа, таким образом он отображает мерцание/сбой при активации листа.
Ответ 8
Даже мы можем обновить конкретное соединение и, в свою очередь, обновим все связанные с ним опорные точки.
Для этого кода я создал slicer из таблицы, присутствующей в Excel:
Ответ 9
Я использую приведенную ниже команду в недавнем прошлом, и, похоже, она работает нормально.
Надеюсь, что это поможет.
Ответ 10
Если вы используете MS Excel 2003, перейдите в меню просмотра- > Панель инструментов- > Сводная таблица. С этой панели инструментов мы можем обновить, нажав! этот символ.
Как назначить макрос кнопке в Excel (простое руководство)
Хотя есть много разных способов запустить макрос в Excel, ни один из них не может быть таким простым и удобным, как нажатие на кнопку. И для того, чтобы это сработало, вам нужно сначала назначить макрос кнопке.
В этом уроке я покажу вам несколько способов вставить кнопку в Excel, а затем назначить макрос этой кнопке (или фигуре). После этого, как только пользователь нажимает кнопку, выполняется макрос VBA-код.
Для целей этого руководства я буду использовать приведенный ниже макрокод VBA (который просто выбирает ячейку A1 на активном листе, вводит в нее текст « Good Morning » и окрашивает ее в красный цвет).
Приведенный выше код VBA помещается в обычный модуль редактора VB.
Теперь давайте углубимся и посмотрим, как вы можете назначить этот макрос кнопке или фигуре в Excel!
Вставьте фигуру и назначьте ей макрос
Хотя есть специальные кнопки, которые вы можете вставить на лист, а затем назначить ему макрос, я сначала расскажу, как назначить макрос фигуре .
Мне лично нравится этот метод, и я предпочитаю его остальным двум методам, которые мы рассмотрим позже. Вы можете легко вставить фигуру (квадрат или прямоугольник) и сделать ее похожей на кнопку.
А поскольку это форма, вы можете легко отформатировать ее, чтобы она идеально сочеталась с существующим форматированием или фирменными цветами.
Ниже приведены шаги по вставке фигуры в Excel:
- Щелкните вкладку Вставка
- В группе иллюстраций нажмите Фигуры
- В параметрах фигур выберите параметр «Прямоугольник». Вы заметите, что ваш курсор изменится на значок плюса
- Щелкните в любом месте листа. Это вставит прямоугольную форму на лист.
- Измените размер прямоугольника и отформатируйте его (при желании задайте рамку, цвет, оттенок).
После того, как вы выполнили вышеуказанные шаги, у вас будет прямоугольная форма на рабочем листе, и теперь мы назначим ей макрос.
Обратите внимание, что в этом примере я вставил форму прямоугольника, но вы можете вставить любую форму, которую хотите (например, круг, треугольник или стрелку). Я предпочитаю использовать прямоугольник, он выглядит как кнопка и более интуитивно понятен.
Теперь давайте посмотрим, как назначить макрос этой фигуре.
- Щелкните правой кнопкой мыши фигуру, которой вы хотите назначить макрос
- В появившемся меню выберите «Назначить макрос». Откроется диалоговое окно назначения макроса.
- В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
- Щелкните имя макроса, который вы хотите назначить этой фигуре. В этом примере я нажму на макрос под названием GoodMorning
- Нажмите на ОК
Выбранный макрос теперь назначен фигуре.
Теперь, когда вы наведете курсор на фигуру, появится значок руки. что указывает на то, что теперь эта фигура стала интерактивной.
И теперь, если вы нажмете на фигуру, она запустит назначенный макрос.
Вы можете ввести любой текст внутри фигуры, чтобы сделать его более интуитивно понятным (например, «Щелкните здесь, чтобы запустить макрос»). Сделать это. щелкните фигуру правой кнопкой мыши и выберите «Редактировать текст». Теперь вы можете вводить текст в форме текстового поля.
Обратите внимание, что вы не сможете щелкнуть и запустить макрос, когда фигура была выбрана (т. е. Вы видите границу вокруг фигуры, которая появляется, когда вы ее выбираете). Чтобы сделать ее интерактивной, нажмите клавишу Escape или щелкните в любом месте в листе.
Кроме того, если вы уже назначили макрос фигуре, вы не сможете выбрать его, используя левую клавишу мыши (поскольку он стал интерактивным, и теперь при щелчке левой кнопкой мыши будет выполняться макрос). В этом случае выберите фигуру, удерживайте нажатой клавишу Control, а затем нажмите левую клавишу.
Сохранение формы видимой при скрытии / изменении размера строк / столбцов
В Excel, когда вы вставляете фигуру, она располагается над ячейками — как диаграмма / объект.
У этого также есть недостаток, заключающийся в том, что при изменении размера или скрытии строк / столбцов, которые имеют форму над ними, форма также следует этому примеру.
В приведенном ниже примере фигура скрывается, когда я скрываю столбец, на котором она размещена.
Если вы не хотите, чтобы это произошло, выполните следующие действия:
- Щелкните форму правой кнопкой мыши
- Нажмите «Форматировать фигуру».
- На панели «Формат фигуры» (или в диалоговом окне, если вы используете Excel 2010 или более ранние версии) выберите «Размер и свойства».
- В параметрах свойств выберите параметр — «Не перемещать и не изменять размер вместе с ячейками».
- Закройте панель (или диалоговое окно)
Теперь, когда вы изменяете размер строк / столбцов или скрываете их, форма останется на своем месте.
Назначение макроса кнопке управления формой
Если вас не слишком интересует форматирование кнопки и вас устраивает обычная серая кнопка, вы можете быстро вставить ее из элемента управления формы (или элемента управления ActiveX, как показано ниже), а затем назначить ему макрос.
Чтобы это работало, вам понадобится вкладка Разработчик на ленте. Если у вас его нет, вот подробное пошаговое руководство по размещению вкладки разработчика на ленте Excel.
Когда у вас появится вкладка разработчика, вы можете использовать следующие шаги, чтобы быстро вставить кнопку и назначить ей макрос:
- Перейдите на вкладку «Разработчик».
- В группе Control нажмите Insert.
- В появившихся параметрах в параметрах элементов управления формы нажмите кнопку (элемент управления формой).
- Щелкните в любом месте листа. Это вставит кнопку в любое место, где вы щелкнете, и автоматически откроет диалоговое окно «Назначить макрос».
- В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
- Щелкните имя макроса, который вы хотите назначить этой кнопке. В этом примере я нажимаю на макрос под названием GoodMorning.
- Нажмите на ОК
Приведенные выше шаги позволят вставить кнопку, которой назначен указанный макрос.
По умолчанию это будет небольшая кнопка с написанным на ней текстом, например «Кнопка». Вы можете изменить текст на все, что захотите, а также можете изменить форму кнопки (перетаскивая края).
Поскольку это объект, который помещается на лист (как фигуры / диаграммы EXCEL), вы можете перетащить его в любое место на листе.
Одним из недостатков использования кнопки управления формой является то, что вы не можете полностью контролировать форматирование. Например, нельзя изменить цвет с серого на другой.
Хотя есть немного форматирования, которое вы можете сделать с помощью кнопки управления формой, это далеко не то, что вы можете делать с фигурами.
Вы получаете эти параметры форматирования кнопки, когда вы щелкаете правой кнопкой мыши по кнопке, а затем нажимаете «Управление форматом».
Откроется диалоговое окно «Управление форматом», в котором вы можете изменить тип / цвет шрифта, размер, выравнивание и т. Д.
Эта кнопка хороша тем, что она не скрывает и не изменяет размер, когда вы скрываете строки / столбцы или изменяете их размер. Однако он будет перемещаться, если вы измените высоту или ширину или строку / столбец, над которыми расположена кнопка.
Если вы не хотите, чтобы кнопка оставалась на своем месте, вы можете изменить настройку, выполнив следующие шаги:
- Щелкните правой кнопкой мыши по кнопке
- Нажмите на Управление форматом
- Перейдите на вкладку «Свойства».
- Выберите вариант — «Не перемещать и не изменять размер вместе с ячейками».
- Нажмите ОК
Назначение макроса кнопке управления ActiveX
Помимо кнопки управления формой, есть также кнопка управления ActiveX, которой вы можете назначить макрос.
В большинстве случаев вам не нужно использовать кнопку управления ActiveX, и я рекомендую использовать ее только тогда, когда вы полностью понимаете, что это такое, и знаете, что делаете.
Хотите знать, почему у нас есть два разных типа кнопок — Form Control и ActiveX? В то время как элементы управления формы встроены в приложение Excel, ActiveX загружается из отдельной библиотеки DLL (библиотеки динамической компоновки). Это делает кнопки управления формой намного более надежными и надежными по сравнению с кнопками ActiveX. Вы можете узнать больше об этой разнице здесь, в сообщении в StackOverflow.
Это также иногда делает ActiveX немного глючным и непредсказуемым. Итак, пока я расскажу об этом в этом руководстве, я не рекомендую использовать кнопку ActiveX и назначать ей макрос.
Чтобы вставить кнопку ActiveX и затем назначить ей макрос, выполните следующие действия:
- Перейдите на вкладку «Разработчик».
- В группе Control нажмите Insert.
- В появившихся опциях в опциях ActiveX Controls щелкните опцию Command Button.
- Щелкните в любом месте листа. Это вставит кнопку куда бы вы ни щелкнули.
- Дважды щелкните кнопку, и откроется бэкэнд редактора VB, где вы можете разместить код для кнопки ActiveX.
С элементом управления ActiveX вы получаете гораздо больше гибкости с помощью одной кнопки. Например, вы можете указать один макрос, который будет запускаться при простом нажатии кнопки один раз, и другой макрос при двойном щелчке или даже еще один макрос при использовании клавиши со стрелкой вверх / вниз.
Опять же, это не то, что вам нужно использовать в своей обычной работе.
Другой вариант, который вы можете рассмотреть (при работе с кнопками / фигурами и назначении им макросов), — это добавить макрос на панель быстрого доступа. Таким образом, вы можете запустить макрос одним щелчком мыши, и он всегда будет виден в QAT.
Макросы для таблиц excel
Табличный процессор Excel был разработана Microsoft ещё в 1985 году, с того времени его функциональность значительно расширилась, а интерфейс стал более удобным. Программа активно используется как финансистами, бухгалтерами, аналитиками, так и обычными пользователями. Функционал позволяет составлять сложные таблицы и делать расчёты по имеющимся в программе или внесёнными пользователем самостоятельно формулам, строить графики и диаграммы. Работа происходит на так называемых листах, которые включены в книгу (один документ Excel).
Снятие защиты паролем с Эксель
В Microsoft понимают, что файл может попасть не в те руки, поэтому дают возможность пользователю задать пароль для доступа к конкретному листу или всему документу. Есть возможность даже заблокировать отдельные ячейки от редактирования и/или просмотра. Но что делать, если забыли пароль, а в файле находятся важные данные? Пароль можно снять самостоятельно при помощи стандартных программ Windows.
Способ 1: Снять пароль при помощи архиватора
Данный способ лучше всего работает со старыми версиями программы (до версии от 2010 года). В последних версиях есть риск потери данных из-за новых параметров безопасности. Суть способа заключается в том, чтобы получить доступ к каждому листу отдельно. Для этого вам понадобится любой архиватор, который умеет работать с файлами .zip и инструмент для редактирования кода (подойдёт даже стандартный блокнот от Windows).
Работа может осуществляться только с файлами .xlsx, поэтому обратите внимание на то, в каком формате сохранён документ, т.к. старые версии Excel сохраняют документе в .xls формате. Если файл имеет расширение .xls, то пересохраните. Для этого откройте его в Excel и в верхнем меню выберите файл, а из выпадающего меню “Сохранить как”, далее в разделе “Тип файла” выбирайте “Книга Excel (.xlsx)”.
Далее требуется поменять расширение .xlsx на .zip. Для этого нажмите правой кнопкой мыши по файлу и выберите переименовать. В конце названия меняете расширение на .zip. Пример: “Таблица1.xlsx” переименовываете в “Таблица1.zip”.
Если, когда вы пытаетесь переименовать файл, у вас не показывается расширение, то проделайте следующую процедуру:
- Перейдите в «Панель управления».
- Выберите тип просмотра “Мелкие значки” и найдите “Параметры папок” (также может называться “Параметры Проводника”).
После проделанной процедуры вы без проблем сможете вручную пометь расширение любого файла.
Далее открываете архив и переходите в папку «xl», после в “worksheets”, где находятся листы в формате .xml. Листы в этом случае называются “sheet” и нумеруются по дате создания (sheet1, sheet2 и т.д.). Открыть файл нужно при помощи стандартного блокнота или специального реактора кода (например, NotePad++).
В открывшемся файле найдите фрагмент “sheetProtection”. Т.к. в файле будет много кода, рекомендуется воспользоваться быстрым поиском по содержимому при помощи сочетания клавиш Ctrl+F. Находите нужный блок, имеющий данную структуру ““sheetProtection переменная1=”” переменная2=””…”, более подробно можно видеть на скриншоте ниже. Для сброса пароля удаляете весь этот блок.
Если вы проделаете данную процедуру с листом, который был сохранён в программе версии 2010 года и выше, то потеряете все данные. В качестве решения данной проблемы удалите не весь блок, а только значение переменной “password”. Что касается версии начиная с 2016 года, то там нет переменной “password”, поэтому снять пароль при помощи архиватора в этом случае невозможно.
Когда закончите сохраните изменения и измените расширение файла обратно в .xlsx аналогичным образом, как меняли на .zip.
Данный способ позволяет снять пароль только с отдельных листов, поэтому если у вас полностью запароленный большой файл Excel с несколькими листами, то придётся снимать защиту с каждого вручную.
Способ 2: Удаление пароля через Макрос
В этом случае вам понадобится только сама таблица Excel и умение работать с консолью разработчика. По умолчанию панель разработчика не отображается в файле, чтобы её включить воспользуйтесь следующей инструкцией:
- Перейдите в пункт “файл” в левой части верхнего меню программы.
- Затем зайдите в “параметры”, в левом меню выберите “настройка ленты”.
- В поле “Основные вкладки” (находится справа) поставьте галочку напротив пункта “Разработчик”.
В открывшемся окне разработчика найдите кнопку “Макрос” или воспользуйтесь комбинацией клавиш Alt+F8.
Заполняем поле с именем макроса (можно придумать любое имя, но в нём не должно быть русских букв и пробелов). Нажимаем “Создать”. Система открывает окно для ввода кода.
Вводите следующий код:
Sub Password_Cracker()
Dim t!
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Long
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
Dim kennwort As String
t = Timer
On Error GoTo err_
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66
kennwort = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6)
For n = 32 To 126
ActiveSheet.Unprotect kennwort & Chr(n)
MsgBox «Done in » & Format(Timer — t, «0.0 sec»)
Exit Sub
nxt_: Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Exit Sub
err_: Resume nxt_
End Sub
Закрываем окно, сохранив при этом изменения. В режиме разработчика снова используйте комбинацию клавиш Alt+F8, чтобы увидеть созданный макрос. Выберите его и нажмите “Выполнить” в правом углу.
Макрос будет выполняться приблизительно 10-60 секунд в зависимости от мощности вашего компьютера и размера документа.
Заключение
Для самостоятельного снятия пароля с таблицы Excel не нужно обладать навыками профессионального хакера или скачивать дополнительное программное обеспечение. Последнее делать категорически не рекомендуется, т.к. вы можете подхватить вирус, который причинит серьёзный вред системе.
Расскажи друзьям в социальных сетях
комментариев 15
Спасибо большое за статью. Написано четко, лаконично, без идиотских исковерканных словечек, которыми грешат многие в интернете.
Но я не смог воспользоваться отличными способами, описанными в статье.
Я попробовал первый вариант. У меня Microsoft Office 2010. Но после замены расширения .xlsx на .zip получил ответ программы:
«Не удается открыть папку.
Путь к сжатой ZIP-папке «С:UsersCompDesktopЛогин 25.02.2017- копия.zip» содержит недопустимые знаки, из-за которых извлечение невозможно:-, »
Попробовал второй вариант. Но при создании макроса возможно использовать только для открытых книг Excell, а открыть книгу невозможно без пароля. Если пароль есть, то зачем его искать? Так что у меня ничего не получилось. а в файле Excele я хранил пароли к многим сайтам и службам. А теперь вдруг он перестал открываться с паролем, которым я его открывал сотни раз.
Макросы в Excel — Инструкция по использованию
Грамотно организовать процесс работы в эксэле помогут такие объекты, как макросы в Excel.
Рассмотрим более подробно все особенности работы с данными объектами в пакете программ MS Office.
Содержание:
Благодаря использованию макросов, каждая ячейка вашего документа может быть автоматизирована. Это происходит за счет того, что пользователь записывает все действия во время их создания.
Что такое макросы и зачем они нужны
С макросами можно работать в любой из программ пакета MS Office. Прежде всего они нужны для того, чтобы грамотно организовать работу пользователя в программе.
Они необходимы, чтобы не выполнять однотипные задачи и действия по несколько десятков раз.
Их создание и использование поможет существенно сэкономить время и максимально автоматизировать роботу в программе.
Его тело, по сути, состоит из инструкций, которые говорят программе о том, что необходимо делать, если пользователи выбирает тот или иной.
С понятием макроса можно также столкнуться в программе Ворд, но в Экселе он имеет несколько преимуществ:
- Во-первых, он объединяет все инструкции в один полный сценарий выполнения, что позволяет оптимизировать нагрузку на программу и начать работать быстрее;
- Вызвать его можно с помощью клавиши на панели инструментов или с помощью специальной комбинации клавиш. Это позволит пользователю не отрываться от клавиатуры в процессе работы;
Отмечаем еще две статьи, которые могут вам пригодиться:
Создание собственных макросов в Excel 2010, 2007, 2013
Рассмотрим более подробно примеры создания в Excel 2007, 2013:
- Откройте документ, с которым работаете и для которого хотите создать макрос. К слову, каждая ячейка, над которой производится действие должна быть проработана;
- Отобразите вкладку разработчика в ленте. Для этого откройте пункт меню «Файл» и откройте параметры, как показано на рисунке;
Добавление вкладки разработчика в список основных пользовательских окон на главной панели инструментов программы
- Затем выберите настройку ленты и добавьте окно разработчика в список основных окон, как это показано на рисунке ниже;
Клавиша создания макроса во вкладке для разработчика программы ексель
- Теперь можно перейти непосредственно к созданию самого макроса пользователя. После его создания, каждая ячейка будет автоматизирована – это означает, что любая ячейка пользовательского документа будет выполнять однотипное действие, которое укажет пользователь;
- Найдите во вкладке разработчика специальную клавишу для создания. Ее расположение указано на рисунке ниже;
Начальное окно создания пользовательского макроса
- Нажмите на клавишу. Появится окно создания, в котором необходимо указать имя, сочетание клавиш, с помощью которых он будет включаться. Также можно добавить короткое описание функционирования макроса. Это необходимо сделать, если у вас их слишком много, чтобы не запутаться;
- Далее нажмите «ОК» . Окно закроется и начнется процесс записи. Для остановки записи, нажмите соответствующую клавишу на панели управления;
- Теперь начните выполнять те действия, которые будут записаны в макрос. Каждая ячейка при этом может заполняться определенными данными.
Можно также работать только с одной ячейкой, после записи и включения макроса эта же ячейка будет записываться согласно указанному алгоритму; - Не забудьте нажать кнопку остановки записи данных. После выполнения всех вышеприведенных действия он будет записан и сохранен в программе.
Как включать и работать с макросами в Excel
Для этого следуйте нижеприведенной инструкции:
Клавиша для открытия основного окна макросов в программе
- На вкладке разработчика найдите кнопку под названием «Макросы» . Нажмите на нее;
Запуск выбранного макроса
- Выберите нужный вам макрос из списка и нажмите кнопку «Выполнить» ;
- Также запустить необходимый макрос можно с помощью сочетания клавиш, которое было указано пользователем на начальном этапе его создания;
- После нажатия кнопки выполнить, все действия, которые были произведены во время записи, будут выполнены повторно.
Макрос удобнее всего использовать, когда определенная ячейка нуждается во многоразовом копировании.
Также вам может быть полезным прочтение статей:
Создание и удаление макросов
Макросы создаются с помощью языка программирования под названием Visual Basic (или просто аббревиатура VB).
При этом, процесс создания настолько автоматизирован, что его может создать даже пользователь, который никогда не сталкивался с программированием.
Впервые технология создания макросов в программе Эксель была усовершенствована и стала доступна для использования простыми юзерами в версии 2007-го года.
Удобнее всего их создавать в таких версиях Ворда: 2007, 2010, 2013.
Макрос состоит из так называемых макрооператоров. Макрооператоры – это и есть тот набор действий, которые он должен выполнить в установленном пользователем порядке.
Существую разные типы операторов.
Некоторые даже могут выполнять те действия, которые связаны с выполнением.
В то же время практически девяносто процентов всех представленных в программе макрооператоров выполняют функции обычных кнопок и значков на панели инструментов программы.
Таким образом каждая ячейка будет выполнять свою работу.
Самый простой способ, чтобы начать создание собственного пользовательского макроса – это открыть средство записи.
Процесс создания сводится к тому, что пользователю необходимо запустить записывающее средство, затем повторить все действия, которые следует автоматизировать.
Макрос их переведет в язык программирования и запомнит все проделанные пользователем команды.
Чтобы удалить макрос, следуйте инструкции:
Удаление пользовательского макроса в программе Excel
- Откройте окно управления с помощью клавиши «Макросы» на главной вкладке разработчика;
- Выберите необходимый вам объект и в правой части окна нажмите на кнопку удаления;
- Подтвердите удаление.
Тематические видеоролики: