Сводка
В этой статье описывается создание нового документа в Word с помощью автоматизации из Visual Basic.
Пример кода
В примере кода в этой статье показано, как выполнить следующие действия:
- Вставка абзацев с текстом и форматированием.
- Просмотр и изменение различных диапазонов в документе.
- Вставка таблиц, форматирование таблиц и заполнение таблиц данными.
- Добавление диаграммы.
Чтобы создать новый документ Word с помощью автоматизации из Visual Basic, выполните следующие действия:
В Visual Basic создайте новый стандартный проект EXE. По умолчанию создается форма Form1.
В меню проект выберите пунктссылки, выберите один из следующих параметров и нажмите кнопку ОК:
- Для Office Word 2007 щелкните объектная Библиотека Microsoft Word 12,0.
- В Word 2003 щелкните объектная Библиотека Microsoft word 11,0.
- В Word 2002 щелкните объектная Библиотека Microsoft word 10,0.
- В Word 2000 щелкните объектная Библиотека Microsoft word 9,0.
Добавление элемента управления CommandButton в форму Form1.
Добавьте следующий код в событие Click для Command1:
Нажмите клавишу F5, чтобы запустить программу, а затем выберите Command1.
После завершения кода проверьте созданный документ. Документ содержит две страницы форматированных абзацев, таблиц и диаграмм.
Использование шаблона
Если вы используете автоматизацию для создания документов, отформатированных в общем формате, можно воспользоваться новым документом, основанным на предварительно отформатированном шаблоне. Использование шаблона с клиентом автоматизации Word имеет два существенных преимущества по сравнению с созданием документа из ничего:
- Вы можете больше управлять форматированием и размещением объектов в документах.
- Вы можете создавать документы с меньшим количеством кода.
С помощью шаблона можно выполнить точную настройку размещения таблиц, абзацев и других объектов в документе, а также включить форматирование для этих объектов. С помощью автоматизации можно создать новый документ на основе шаблона, используя следующий код:
В шаблоне можно определить закладки, чтобы клиент автоматизации мог заполнять переменный текст в определенном месте документа, как показано ниже:
Еще одно преимущество использования шаблона состоит в том, что вы можете создавать и сохранять стили форматирования, которые вы хотите применить во время выполнения, следующим образом:
Код макроса на VBA Excel
Для того чтобы написать код макроса, открывайте на ленте вкладку «Разработчик», далее макросы.
Примечание! По умолчанию данной вкладке в Excel 2010 может и не быть, чтобы ее отобразить нажмите правой кнопкой по ленте пункт меню «Настройка ленты»
затем, в правой области поставьте галочку напротив пункта «Разработчик»
После вкладка разработчик станет отображаться на ленте.
Далее, когда Вы откроете вкладку разработчик и нажмете кнопку «Макросы» у Вас отобразится окно создания макроса, Вы пишите название макросы и жмете «создать».
После у Вас откроется окно редактора кода, где собственно мы и будем писать свой код VBA. Ниже представлен код, я его как обычно подробно прокомментировал:
Sub Карточка() 'Книга NewBook = "" ' Путь, где будут храниться наши карточки ' Т.е. в той папке, откуда запустился файл с макросом Path = ThisWorkbook.Path ' Выбираем лист с данными Sheets("Данные").Select ' Запускаем цикл, скажем на 100000 итераций ' Начиная со второй строки, не учитывая заголовок For i = 2 To 100000 ' Выйдем из него, когда фамилии закончатся, т.е. строки If Cells(i, 1).Value = "" Then i = 100000 Exit For End If ' Имя файла карточки, назовем по фамилии Name_file = Path & "\" & Sheets("Данные").Cells(i, 1).Value & ".xls" ‘Выбираем лист с шаблоном Sheets("Шаблон").Select ' Присваиваем значения нашим ячейкам, по именам которые мы задавали Range("fio").Value = Sheets("Данные").Cells(i, 1).Value & " " & _ Sheets("Данные").Cells(i, 2).Value & " " & Sheets("Данные").Cells(i, 3).Value Range("number").Value = Sheets("Данные").Cells(i, 4).Value Range("addres").Value = Sheets("Данные").Cells(i, 5).Value Range("dolgn").Value = Sheets("Данные").Cells(i, 6).Value Range("phone").Value = Sheets("Данные").Cells(i, 7).Value Range("comment").Value = Sheets("Данные").Cells(i, 8).Value ' Копируем все Cells.Select Selection.Copy ' Создаем новую книгу или делаем ее активной If NewBook = "" Then Workbooks.Add NewBook = ActiveWorkbook.Name Else Workbooks(NewBook).Activate Cells(1, 1).Select End If ' Вставляем данные в эту книгу Application.DisplayAlerts = False ActiveSheet.Paste Application.CutCopyMode = False ' Сохраняем с нашим новым названием ActiveWorkbook.SaveAs Filename:= _ Name_file, FileFormat:=xlExcel8, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False NewBook = ActiveWorkbook.Name Application.DisplayAlerts = True ' Снова активируем файл с макросом и выбираем лист Workbooks("Макрос.xls").Activate Sheets("Данные").Select ' Переходим к следующей строке Next i ' Закроем книгу Workbooks(NewBook).Close ' Выведем сообщение об окончании MsgBox ("Выполнено!") End Sub
Теперь осталось выполнить этот макрос, для этого откройте вкладку разработчик->макросы->выполнить наш макрос:
и после выполнения у Вас в той же папке появится вот такие файлы
Вот с таким содержимым:
Для удобства можете на листе с данными создать кнопку и задать ей событие выполнить наш только что созданный макрос, и после чего простым нажатием выполнять этот макрос. Вот и все! Удачи!
Нравится26Не нравится1
Создание макроса – практический пример
Для примера возьмём самый обычный файл CSV. Это простая таблица 10х20, заполненная числами от 0 до 100 с заголовками для столбцов и строк. Наша задача превратить этот набор данных в презентабельно отформатированную таблицу и сформировать итоги в каждой строке.
Как уже было сказано, макрос – это код, написанный на языке программирования VBA. Но в Excel Вы можете создать программу, не написав и строчки кода, что мы и сделаем прямо сейчас.
Чтобы создать макрос, откройте View (Вид) > Macros (Макросы) > Record Macro (Запись макроса…)
Дайте своему макросу имя (без пробелов) и нажмите ОК.
Начиная с этого момента, ВСЕ Ваши действия с документом записываются: изменения ячеек, пролистывание таблицы, даже изменение размера окна.
Excel сигнализирует о том, что включен режим записи макроса в двух местах. Во-первых, в меню Macros (Макросы) – вместо строки Record Macro (Запись макроса…) появилась строка Stop Recording (Остановить запись).
Во-вторых, в нижнем левом углу окна Excel. Иконка Стоп (маленький квадратик) указывает на то, что включен режим записи макроса. Нажатие на неё остановит запись. И наоборот, когда режим записи не включен, в этом месте находится иконка для включения записи макроса. Нажатие на неё даст тот же результат, что и включение записи через меню.
Теперь, когда режим записи макроса включен, давайте займёмся нашей задачей. Первым делом, добавим заголовки для итоговых данных.
Далее, введите в ячейки формулы в соответствии с названиями заголовков (даны варианты формул для англоязычной и русифицированной версии Excel, адреса ячеек – всегда латинские буквы и цифры):
- =SUM(B2:K2) или =СУММ(B2:K2)
- =AVERAGE(B2:K2) или =СРЗНАЧ(B2:K2)
- =MIN(B2:K2) или =МИН(B2:K2)
- =MAX(B2:K2) или =МАКС(B2:K2)
- =MEDIAN(B2:K2) или =МЕДИАНА(B2:K2)
Теперь выделите ячейки с формулами и скопируйте их во все строки нашей таблицы, потянув за маркер автозаполнения.
После выполнения этого действия в каждой строке должны появиться соответствующие итоговые значения.
Далее, мы подведем итоги для всей таблицы, для этого делаем ещё несколько математических действий:
Соответственно:
- =SUM(L2:L21) или =СУММ(L2:L21)
- =AVERAGE(B2:K21) или =СРЗНАЧ(B2:K21) — для расчёта этого значения необходимо взять именно исходные данные таблицы. Если взять среднее значение из средних по отдельным строкам, то результат будет другим.
- =MIN(N2:N21) или =МИН(N2:N21)
- =MAX(O2:O21) или =МАКС(O2:O21)
- =MEDIAN(B2:K21) или =МЕДИАНА(B2:K21) — считаем, используя исходные данные таблицы, по причине указанной выше.
Теперь, когда с вычислениями закончили, займёмся форматированием. Для начала для всех ячеек зададим одинаковый формат отображения данных. Выделите все ячейки на листе, для этого воспользуйтесь комбинацией клавиш Ctrl+A, либо щелкните по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов. Затем нажмите Comma Style (Формат с разделителями) на вкладке Home (Главная).
Далее, изменим внешний вид заголовков столбцов и строк:
- Жирное начертание шрифта.
- Выравнивание по центру.
- Заливка цветом.
И, наконец, настроим формат итоговых значений.
Вот так это должно выглядеть в итоге:
Если Вас все устраивает, остановите запись макроса.
Поздравляем! Вы только что самостоятельно записали свой первый макрос в Excel.
Чтобы использовать созданный макрос, нам нужно сохранить документ Excel в формате, который поддерживает макросы. Для начала необходимо удалить все данные из созданной нами таблицы, т.е. сделать из неё пустой шаблон. Дело в том, что в дальнейшем, работая с этим шаблоном, мы будем импортировать в него самые свежие и актуальные данные.
Чтобы очистить все ячейки от данных, щёлкните правой кнопкой мыши по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов, и из контекстного меню выберите пункт Delete (Удалить).
Теперь наш лист полностью очищен от всех данных, при этом макрос остался записан. Нам нужно сохранить книгу, как шаблон Excel с поддержкой макросов, который имеет расширение XLTM.
Важный момент! Если Вы сохраните файл с расширением XLTX, то макрос в нём работать не будет. Кстати, можно сохранить книгу как шаблон Excel 97-2003, который имеет формат XLT, он тоже поддерживает макросы.
Когда шаблон сохранён, можно спокойно закрыть Excel.
Копирование информации и заполнение формы
Копирование информации
Информация о документе обычно хранится в реестре или базе данных Excel в одной строке. Информация для отчета может располагаться как в одной, так и в нескольких или во многих строках.
Если информация нужна из одной строки, перед запуском кода VBA следует выделить любую ячейку в строке с данными. Тогда в ходе выполнения программы можно будет определить номер строки по активной ячейке и извлечь из нее информацию.
Допустим, что лист называется «Reestr», а необходимая информация расположена в десяти первых ячейках каждой строки:
1 |
Dimnomer AsLong,massiv()AsVariant nomer=ActiveCell.Row massiv=Range(Cells(nomer,1),Cells(nomer,10)) |
Если для отчета требуется информация из нескольких строк, можно выделить их вертикально по любому столбцу и использовать следующий код:
1 |
Dimnomer1 AsLong,nomer2 AsLong,massiv()AsVariant nomer1=Selection.Cells(1).Row nomer2=Selection.Cells(Selection.Cells.Count).Row massiv=Range(Cells(nomer1,1),Cells(nomer2,10)) |
В иных случаях, когда для отчета требуется большое количество строк, можно организовать автоматическое выделение диапазона, например, по интервалу дат.
Если требуется обработка данных для отчета, проводим ее в массиве. Для результатов обработки можно объявить еще одну переменную массива.
Создание и заполнение формы
После того как информация скопирована и обработана, создаем из шаблона печатную форму документа или отчета, лист которой после создания будет активным.
Заполняем ячейки печатной формы информацией из массива, обращаясь к листу с формой как к ActiveSheet. Если новый документ или отчет создан в той же книге, ее можно автоматически сохранить:
1 | ThisWorkbook.Save |
Чтобы не наблюдать за мерцаниями экрана во время выполнения процедуры VBA Excel, можно временно отключить его обновления:
1 |
SubGeneratsiyaDokumenta() Application.ScreenUpdating=False ——-операторы——- Application.ScreenUpdating=True EndSub |
Удаление печатной формы
Если лист документа или отчета временно сохраняется в книгу с реестром или базой данных, можно предусмотреть его простое удаление без выведения дополнительного диалогового окна.
Для этого необходимо на лист шаблона правее печатной формы вставить кнопку из коллекции «Элементы управления ActiveX». Дважды кликнуть по ней и в открывшемся модуле листа внутрь автоматически сгенерированного объявления процедуры вставить строку :
1 |
SubCommandButton1_Click() CallUdaleniyeLista EndSub |
Затем в модуль текущей книги добавляем процедуру:
1 |
SubUdaleniyeLista() Application.DisplayAlerts=False ActiveSheet.Delete Application.DisplayAlerts=True EndSub |
Кнопка вместе с шаблоном будет копироваться в новую печатную форму. При нажатии кнопки активный лист будет удаляться кодом VBA без предупреждения от Excel.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
Пример 2
Циклы VBA помогают создавать различные макросы в Excel.
Циклы VBA помогают создавать различные макросы. Предположим, что имеется функция y=x + x 2 + 3x 3 – cos(x). Требуется создать макрос для получения ее графика. Сделать это можно только, используя циклы VBA.
За начальное и конечное значение аргумента функции берут x1=0 и x2=10. Кроме того, необходимо ввести константу — значение для шага изменения аргумента и начальное значение для счетчика.
Все примеры макросов VBA Excel создаются по той же процедуре, которая представлена выше. В данном конкретном случае код выглядит, как:
Do While x1 0 Then Cells(1, 1).Value = 1
Вариант 1: Автоматическая запись макросов
Прежде чем начать автоматическую запись макросов, нужно включить их в программе Microsoft Excel. Для этого воспользуйтесь нашим отдельным материалом.
Подробнее: Включение и отключение макросов в Microsoft Excel
Когда все готово, приступаем к записи.
- Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».
Открывается окно настройки записи макроса. Тут можно указать любое имя для него, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры, а также в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».
Тут же при желании можно установить сочетание клавиш, при нажатии на которые макрос будет запускаться. Первой клавишей обязательно должна быть Ctrl, а вторую пользователь устанавливает самостоятельно. Мы в качестве примера установили клавишу М.
Далее следует определить, где будет храниться макрос. По умолчанию он расположен в этой же книге (файле), но при желании можно установить хранение в новой книге или в отдельной книге макросов. Мы оставим значение по умолчанию.
В самом нижнем поле можно оставить любое подходящее по контексту описание макроса, но это делать не обязательно. Когда все настройки выполнены, жмем на кнопку «OK».
После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).
Когда алгоритм был выполнен, щелкаем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса» после включения записи.
Запуск макроса
Для проверки того, как работает записанный макрос, выполним несколько простых действий.
- Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.
После этого открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его и кликаем на кнопку «Выполнить».
Можно поступить еще проще и не вызывать даже окно выбора макросов, так как на первом этапе мы задали сочетание клавиш для быстрого вызова макроса. В нашем случае это Ctrl + М. Жмем данную комбинацию на клавиатуре, после чего он запускается.
Как видим, он выполнил в точности все те действия, которые были записаны ранее.
Редактирование макроса
Естественно, при желании вы можете корректировать созданный макрос, чтобы всегда поддерживать его в актуальном состоянии и исправлять некоторые неточности, допущенные во время процесса записи.
- Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».
Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.
Запись каждого макроса начинается с команды , а заканчивается командой . Сразу же после указывается имя макроса. Оператор указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». Оператор используется для записи действий в формулах и других расчетов.
Попытаемся немного изменить макрос, дописав выражение:
Выражение заменим на .
Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду .
Добавим также команду в начало кода, а в его конец дописываем . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.
Макрос на VBA Excel – Формируем документы по шаблону
Очень часто бывает такое, что нужно сформировать документы по определенному шаблону, на основе каких-то данных, например, по каждому сотруднику или по каждому лицевому счету. И делать это вручную бывает достаточно долго, когда этих самых сотрудников или лицевых счетов много, поэтому сегодня мы рассмотрим примеры реализации таких задач в Excel с помощью макроса написанного на VBA Excel.
Немного поясню задачу, допустим, нам необходимо сформировать какие-то специфические документы по шаблону массово, т.е. в итоге их получится очень много, как я уже сказал выше, например, по каждому сотруднику. И это нужно сделать непосредственно в Excel, если было бы можно это сделать в Word, то мы бы это сделали через «Слияние», но нам нужно именно в Excel, поэтому для этой задачи мы будем писать макрос.
Мы с Вами уже выгружали данные по шаблону через клиент Access из базы MSSql 2008 в Word и Excel вот в этой статье — Выгрузка данных из Access в шаблон Word и Excel. Но сейчас допустим, у нас данные располагаются в базе, в клиенте которой нельзя или слишком трудоемко реализовать такую задачу, поэтому мы просто выгрузим необходимые данные в Excel и на основе таких данных по шаблону сформируем наши документы.
В нашем примере мы, конечно, будем использовать простой шаблон, только для того чтобы это было просто наглядно и понятно (только в качестве примера), у Вас в свою очередь шаблон будет, как мне кажется намного сложней.
Напомню, что на данном сайте тема VBA Excel уже затрагивалась, например, в материале – Запрет доступа к листу Excel с помощью пароля
И так приступим!
Решение задачи с использованием программирования на VBA
Чтобы просчитать возможные отклонения, требуется ввести обозначения и получить заданную формулу. Для того, чтобы просчитать процентное обозначение потребуется использовать следующую формулу: (F-P)разделить на P*100, суммарное значение должно получиться при действии (F-P). Полученные результаты рекомендуется сразу вводить в таблицу.
Чтобы сформировать в надлежащем виде прогноз, нужно применить следующую формулу: ItogP=ItogP + P, ItogF=ItogF+ F. Для просчета отклонений требуется использовать (ItogF – ItogP) / ItogP * 100. Как только все действия будут выполнены, значения вносятся в ячейки, а значит присваивать переменные нет необходимости.
Если требуется создать таблицу для отчетности, то по данной функции достаточно кликнуть все раз. Как только работа подойдет к завершению, нужно нажать на закончить, а затем переключиться в соответствующее окно программы Excel.
Объекты, коллекции, свойства и методы
Для пользователей, которые планируют в будущем использовать VBA, необходимо разобраться с ключевыми понятиями и узнать, что такое объект. Обратившись к программе Excel, здесь в данном случае объектами являются:
- Ячейка
- Лист
- Созданная книга
- Выбранный диапазон.
Все объекты создают определенную иерархию, в которой подчиняются друг другу. Имеющийся Application должен соответствовать продукту Excel. Так, например, чтобы использовать определенную ячейку, пользователь должен задать определенный путь к ней.
Коллекция – это группа объектов, принадлежащих к тому же классу с форматом записи ChartObjects. Отдельные составляющие также принадлежат категории объектов.
Еще одно понятие, с которым важно ознакомиться, это «Свойства». Каждый объект имеет обязательную характеристику
Для Range, как правило, Value и Formula.
Stop Recording
Развитие и техподдержка
Развитие макросов SWPlus приостановлено разработчиком в 2014 году так как все свои силы и знания разработчик решил вложить в приложение SWPlus и развивать его в рамках добавления (Add-in) к SOLIDWORKS. После заключения договора с нашей компанией у автора появилась возможность переключиться на развитие своего продукта, а тестирование, документирование и техподдержку предоставить нам.
Теперь обновления приложения SWPlus поставляются нашим клиентам 1 раз в 3 месяца. При обнаружении критических замечаний выпускается hotfix (быстрое решение проблемы). А при возникновении у пользователей пожеланий к функциям SWPlus мы рассматриваем внесение требуемых изменений в рамках отдельного договора, например можно создавать по запросам пользователей уникальные механизмы сортировки.
Атанас Йонков Блоггер, Веб-разработчик [email protected]
В этом уроке я покажу Вам самые популярные макросы в VBA Excel, которые вы сможете использовать для оптимизации своей работы. VBA – это язык программирования, который может использоваться для расширения возможностей MS Excel и других приложений MS Office. Это чрезвычайно полезно для пользователей MS Excel, поскольку VBA может использоваться для автоматизации вашей работы и значительно увеличить Вашу эффективность. В этой статье Вы познакомитесь с VBA и я вам покажу некоторые из наиболее полезных, готовых к использованию примеров VBA. Вы сможете использовать эти примеры для создания собственных скриптов, соответствующих Вашим потребностям.
Я подготовил для вас несколько самых полезных примеров VBA Excel с большой функциональностью, которую вы сможете использовать для оптимизации своей работы. Чтобы их использовать, вам необходимо записать их в файл. Следующий параграф посвящен установке макроса Excel. Пропустите эту часть, если вы уже знакомы с этим.
Table of Contents
Как включить макросы в Excel
В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!
1. Копирование данных из одного файла в другой.
Очень полезный макрос, поскольку он показывает, как скопировать ряд данных изнутри vba и как создать и назвать новую книгу. Вы можете изменить этот макрос в соответствии с вашими собственными требованиями:
2. Отображение скрытых строк
Иногда большие файлы Excel можно содержать скрытые строки для большей ясности И для лучшего удобства пользователей. Вот один макрос, который отобразит все строки из активной рабочей таблицы:
14. Отправка активного файла по электронной почте
Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).
15. Вставка всех графиков Excel в презентацию PowerPoint
Очень удобный макрос, который позволяет вам добавлять все ваши графики Excel в презентацию Powerpoint одним щелчком мыши:
16. Вставка таблицы Excel в MS Word
Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:
17. Извлечение слов из текста
Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():
Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.
Поздравления! Поскольку вы все еще читаете это, вы действительно заинтересованы в изучении VBA. Как вы уже сами видели, язык программирования VBA чрезвычайно полезен и может сэкономить нам много времени. Надеюсь, вы нашли эту информацию полезной и использовали ее, чтобы стать мастером MS Excel, VBA и компьютерных наук в целом.
Cutcopymode vba excel
На этом шаге мы рассмотрим перечень окончательных действий по созданию указанного приложения .
Вернемся на рабочий лист ЖурналРегистрацииКУ .
При разработке приложения считалось, что основной метод формирования новой строки с данными в журнале регистрации — копирование строки с имеющейся записью, последующий переход в конец списка, выделение первой пустой строки и вставка скопированного содержимого. Задумайтесь, сколько однотипных действий должен совершить пользователь для выполнения этой, казалось бы очень простой, операции.
Оставим за пользователем только выбор копируемой строки, а все остальное поручите выполнять Excel в автоматическом режиме при нажатии на созданную кнопку Копирование и вставка выделенной строки (рисунок 1), которой назначьте следующий записываемый макрос с именем ВставкаСтроки .
Рис.1. Левая область журнала регистрации командировочных удостоверений на рабочем листе ЖурналРегистрацииКУ
Для записи макроса выполните следующую последовательность действий:
- перед записью макроса выделите выбранную строку, например, строку 9;
- выполните процедуру начала записи макроса, после чего задайте команду копирования, например, нажатием на кнопку Копирование на стандартной панели инструментов. Содержимое строки 9 будет помещено в буфер обмена;
- в связи с тем, что процедура автоматического определения и выделения первой пустой строки списка еще не изучена, выделите самую последнюю строку списка. Согласно ранее определенным договоренностям — это строка 200. Но чтобы добраться до нее, нужно выполнить ряд действий, например, перемещений на несколько экранов монитора вниз. Не затрудняйте себя, а выделите, например, строку 14 и произведите вставку из буфера обмена, например, нажатием на кнопку Вставка на стандартной панели инструментов;
- выделите строки от строки вставки (14) до первой строки после заголовка списка (4) и нажмите на кнопку Сортировка по возрастанию на стандартной панели управления. По умолчанию Excel произведет сортировку по данным столбца А . Список расположится в порядке возрастания порядковых номеров и содержимое скопированной строки 9 будет находиться в конце списка;
- остановите запись макроса.
Назначьте макрос кнопке и выделив одну из заполненных строк списка журнала регистрации, нажатием на созданную кнопку, проверьте правильность выполнения заданной последовательности ваших действий.
Макрос вывода документа на печать
Для того чтобы начать запись макроса, выполните команду Сервис | Макрос | Начать запись. Появится диалоговое окно
Запись макроса (рисунок 1).
Рис.1. Диалоговое окно Запись макроса
Если это первый записываемый макрос в открываемой книге, то тогда в поле Имя макроса будет указано его имя — Макрос1.
Многие пользователи не изменяют имя макроса и через некоторое время может возникнуть недоразумения — какую операцию выполняет этот макрос.
Поэтому сразу измените его имя на ПечатьЛицевойСтороны. Имя макроса должно начинаться с заглавной буквы и между элементами
текста имени не должно быть пробелов.
В поле Сочетание клавиш введите букву на английском языке, например, «z» (рисунок 2).
Рис.2. Диалоговое окно Запись макроса после внесения изменений в поля Имя макроса, Описание и Сочетание клавиш
Это позволит сразу же после записи макроса, нажав на комбинацию клавиш Ctrl+z запустить макрос на автоматическое выполнение записанной операции.
В поле Описание будет зафиксирована дата создания макроса и, при желании, в это поле с клавиатуры введите краткое описание задачи макроса,
например, Предназначен для печати лицевой стороны командировочного удостоверения.
В раскрывающемся списке Сохранить в находятся:
- Личная книга макросов;
- Новая книга;
- Эта книга;
Этой книге
После нажатия на кнопку ОК или клавишу Enter Excel начинает запись макроса, для чего фиксирует все действия пользователя, независимо
от того, правильны ли они. Фиксация действий производится на языке кода VBA и будет осуществляться до остановки записи. Для остановки
записи предназначена появляющаяся после начала записи кнопка Остановка (рисунок 3).
Рис.3. Кнопка Остановка
Для записи кода действий, выполняемых макросом, последовательно выполните процедуры по выводу на печать лицевой стороны командировочного удостоверения:
- выполните команду Файл | Печать;
- в появившемся диалоговом окне Печать в области Печатать введите номера страниц с 1-й по 1-ю и нажмите кнопку ОК;
- для остановки записи макроса нажмите кнопку Остановка или выполните команду Сервис | Макрос | Остановка записи.
Для записи макроса печати оборотной стороны командировочного удостоверения нужно проделать аналогичную операцию по выводу на печать страницы 2.