Складний макрос
"Писати макроси не складно, складно писати красиві макроси"
з проектування електронних таблиць
Досить часто доводиться копіювати дані з одного робочого листа до іншого. Давайте за допомогою макросу намагатимемося автоматизувати цей процес.
Синхронізація двох аркушів у файлі Excel
Відкриємо файл Excel і запустивши запис макросу, скопіюємо з аркушаЛист1будь-яку комірку в аркушЛист2.
Тепер давайте відкриємо код для редагування:Сервіс–Макрос–Макроси …де має з'явитися віконце з вашими записаними макросами. Виділіть редагований Макрос і натиснітьЗмінити


Нас у принципі цікавлять розділи із назвами Module 1 тощо. У цих модулях зберігається код VBA. Нагорі є назва VBA-проекту (у дужках назва файлу Excel) у нас це (Macros 2. xls). Натисніть на цей модульModule 1.

Перед вами має з'явитися програмний код VBA, давайте розбиратися:
Sub Макрос2 ()оператор Sub це початок програми, ми говоримо VBA , що хочемо щось створити. Макрос2 це назва нашого макросу, його можна перейменувати.
Range (“G 2”). SelectМи виділяємо комірку G 2 на активному аркуші.
Selection. CopyКопіюємо цей виділений осередок в пам'ять комп'ютера (у буфер обміну).
Sheets ("Лист1") . SelectЗнаходимо і виділяємо листЛист1
Range ("Н10"). SelectНа виділеному аркушіЛист1виділяємо коміркуН10
ActiveSheet. PasteНа виділеному аркушіЛист1вставляємо в коміркуН10дані з буфера.
End SubПовідомляємо VBA про наше бажання завершити програму.
Ось так наші дії записав комп'ютер у VBA-код. Так якаркуш, з якого потрібно копіювати дані не вказано (вказана тільки коміркаG 2), VBA копіюватиме коміркуG 2з будь-якого аркуша, варкуш 1у коміркуH 10.
Природно, що цей код можна грамотно підредагувати та змінити за своїми бажаннями.
Синхронізація двох файлів Excel.
Як приклад, скопіюйте на жорсткий диск і відкрийте (одночасно) два файли:
(Даний приклад знаходиться у файліMacros 2. xlsуModule 2)
Sub Bridge ()’ Початок програми Bridge
‘ Макрос віддаленого доступу
Windows ("Test. xls"). Activate ’ Вибираємо файл з якого копіюватимемо комірку
Sheets ("Лист1"). Select ’ Вибираємо аркуш у цьому файлі
'Range ("A 1"). Select ’ Можемо вибрати певну комірку. Якщо заблокувати рядок – буде вибрано осередок, який спочатку виділено на аркуші.
Selection. Copy ’ Копіюємо комірку
Windows ("Macros 2. xls "). Activate ’ Вибираємо файл у який копіюватимемо раніше скопійовану комірку
Sheets ("Лист 2"). Select ’ Вибираємо аркуш у цьому файлі
'Range ("A 1"). Select ’ Вибираємо фіксований осередок, який буде постійним для вставки. Якщо заблокувати рядок – буде вибрано осередок, який спочатку виділено на аркуші.
ActiveSheet.Paste’ Вставляємо значення
End Sub’ Завершуємо програму
Суть цієї програми в наступному: ми з відкритого файлу Test. xls копіюємо виділену комірку на аркуші Аркуш 1 у файл Macros 2. xls на аркуш Аркуш 2
Записавши цей макрос, не забудьте привласнити йому комбінацію клавіш для запуску:

ВибираємоПараметри …і вписуємо букву для комбінації (у разі цеq).

Тепер при натисканні комбінації клавішCtrl + q, у нас з файлу Test. xls копіюється виділений осередок у файлMacros 2. xls(природно ці файли повинні бути відкриті і робочі аркуші чітко прописані).
Можна прикрасити свою програму. Скопіюйте у файлMacros 2. xlsбудь-яку картинку (у прикладі вже є кнопка) і виділивши цю картинку правою кнопкою миші виберіть опціюПризначити макрос …Після чого відкриється список макросів - виберіть один з них . Тепер натискаючи на заповіту кнопку, ви автоматично запускатимете цей макрос. Звичайно, з цією кнопкою можна виконувати різні маніпуляції: робити написи, розфарбовувати, розтягувати і т.д.