Складний макрос

"Писати макроси не складно, складно писати красиві макроси"

з проектування електронних таблиць

Досить часто доводиться копіювати дані з одного робочого листа до іншого. Давайте за допомогою макросу намагатимемося автоматизувати цей процес.

Синхронізація двох аркушів у файлі 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будь-яку картинку (у прикладі вже є кнопка) і виділивши цю картинку правою кнопкою миші виберіть опціюПризначити макрос …Після чого відкриється список макросів - виберіть один з них . Тепер натискаючи на заповіту кнопку, ви автоматично запускатимете цей макрос. Звичайно, з цією кнопкою можна виконувати різні маніпуляції: робити написи, розфарбовувати, розтягувати і т.д.