Перейти до основного контенту

Excel VBA: робота з аркушами та робочою книгою

4 хв читання
283 переглядів

Microsoft Excel є одним з найпопулярніших додатків для роботи з електронними таблицями. Однак, коли стандартні функціональні можливості Excel виявляються недостатніми, можна вдатися до використання VBA (Visual Basic for Applications) для створення макросів і автоматизації завдань.

Excel VBA дозволяє працювати з листами і робочою книгою, відкривати, закривати, копіювати, видаляти і перейменовувати листи. Крім того, можна створювати нові листи, переміщатися між листами і змінювати їх порядок.

У робочій книзі Excel VBA можна виконувати різні операції, такі як збереження, збереження як, відкриття, закриття та створення нової книги. Крім того, можна отримувати і змінювати властивості робочої книги, такі як назва, автор, дата останнього збереження та інші.

Використання Excel VBA дозволяє спростити роботу з листами і робочою книгою, прискорити виконання повторюваних завдань і підвищити ефективність роботи з даними. Ознайомившись з основними командами і функціями VBA, ви зможете створювати потужні макроси, які автоматизують рутинні операції в Excel і допоможуть вам стати більш продуктивним Користувачем.

Створення та видалення листів

У програмуванні на VBA для роботи з листами в Excel використовуються методи і властивості об'єкта Workbook. У цьому розділі ми розглянемо, як створити новий аркуш і видалити існуючий.

Для створення нового листа необхідно використовувати метод Worksheets.Add . Цей метод додає новий аркуш до кінця книги. Наприклад, наступний код створить новий аркуш:

Sub СоздатьЛист()Set book = ThisWorkbookbook.Worksheets.Addbook.Worksheets(book.Worksheets.Count).Name = "Новый лист"End Sub

У цьому прикладі ми створюємо новий аркуш за допомогою методу Add і присвоюємо йому ім'я за допомогою властивості Name . Ми використовуємо об'єкт ThisWorkbook для посилання на робочу книгу, яка створить новий аркуш.

Якщо вам потрібно видалити існуючий аркуш, ви можете скористатися методом Worksheets(Індекс).Delete . Наприклад, наступний код видалить перший аркуш у книзі:

Sub УдалитьЛист()Set book = ThisWorkbookbook.Worksheets(1).DeleteEnd Sub

У цьому прикладі ми використовуємо метод Delete для видалення аркуша з індексом 1. Зверніть увагу, що індекси аркушів починаються з 1, тому перший аркуш має індекс 1, другий - індекс 2 тощо.

Таким чином, за допомогою методів Add і Delete об'єкта Workbook ви можете створювати та видаляти аркуші в Excel за допомогою VBA.

Як створити новий аркуш у Excel за допомогою VBA

В Excel за допомогою VBA (Visual Basic for Applications) можна легко створювати нові листи в робочій книзі. Це може бути корисно, якщо потрібно організувати дані або виконати різні дії на окремих аркушах.

Для створення нового аркуша в Excel за допомогою VBA використовується метод Add об'єкт Sheets. Ось приклад коду:

Sub CreateNewSheet()
Sheets.Add
ActiveSheet.Name = "новий лист"
End Sub

Даний код створить новий лист в робочій книзі і назве його "новий лист".

Якщо потрібно створити кілька нових аркушів, можна використовувати цикл For. Наприклад:

Sub CreateMultipleSheets()
Dim i As Integer
For i = 1 To 5
Sheets.Add
ActiveSheet.Name = "Лист" & i
Next i
End Sub

Цей код створить 5 нових аркушів з назвами "Аркуш 1", "аркуш 2" тощо.

Крім того, можна Зберегти посилання на створений лист в змінній і використовувати її для подальшої роботи з листом. Ось приклад:

Sub UseNewSheet()
Dim newSheet As Worksheet
Set newSheet = Sheets.Add
newSheet.Name = "мій лист"
'Далі можна виконувати різні дії на новому аркуші
End Sub

У цьому прикладі змінна newSheet буде посилатися на створений лист з назвою "мій лист". За допомогою цієї змінної можна виконувати будь-які потрібні дії на новому аркуші.

Таким чином, за допомогою VBA можна створювати нові листи в Excel і працювати з ними. Це дає можливість зручно організовувати дані і виконувати різні операції на різних аркушах в рамках однієї робочої книги.

Видалення аркушів у Excel VBA: методи та приклади

Спосіб 1: Видалення листа за назвою

Перший метод полягає у видаленні листа по його імені. Для цього потрібно використовувати метод Delete об'єкт Worksheet і вказати ім'я видаляється листа в якості аргументу методу. Нижче наведено приклад коду:

Sub DeleteSheetByName()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("ИмяЛиста")Application.DisplayAlerts = False 'отключаем отображение сообщений об удалении листаws.DeleteApplication.DisplayAlerts = True 'включаем отображение сообщенийEnd Sub

Спосіб 2: Видалення листа за індексом

Другий метод заснований на видаленні листа за його індексом. Індекс листа-це його порядковий номер серед інших аркушів в робочій книзі. Для видалення листа за індексом використовується метод Delete об'єкт Worksheets. Приклад коду:

Sub DeleteSheetByIndex()Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets(3) 'удалить 3-й листApplication.DisplayAlerts = Falsews.DeleteApplication.DisplayAlerts = TrueEnd Sub

Спосіб 3: Видалення всіх аркушів, крім зазначеного

Третій метод дозволяє видалити всі листи в робочій книзі, крім зазначеного. Для цього необхідно перебрати всі листи в циклі і викликати метод Delete тільки для тих листів, імена яких не збігаються з ім'ям зберігається листа. Нижче наведено приклад коду:

Sub DeleteAllSheetsExceptOne()Dim ws As WorksheetDim keepSheetName As StringkeepSheetName = "Сохраняемый лист"Application.DisplayAlerts = FalseFor Each ws In ThisWorkbook.SheetsIf ws.Name <> keepSheetName Thenws.DeleteEnd IfNext wsApplication.DisplayAlerts = TrueEnd Sub

Тепер ви знаєте кілька методів видалення аркушів у Excel vba. Використовуйте їх у своїх макросах, щоб ефективно керувати аркушами та робочою книгою.

Робота з активним листом

Для роботи з активним листом можна використовувати об'єкт Sheets. Активний лист можна отримати за допомогою властивості ActiveSheet:

  • ActiveSheet-повертає об'єкт активного аркуша
Sub WorkWithActiveSheet()Dim activeSheet As WorksheetSet activeSheet = ActiveSheetMsgBox "Активный лист: " & activeSheet.NameEnd Sub

В даному прикладі ми оголошуємо змінну activeSheet типу Worksheet і за допомогою властивості ActiveSheet встановлюємо Активний лист в цю змінну. Далі виводимо ім'я активного листа в повідомленні за допомогою методу MsgBox.

За допомогою об'єкта активного листа можна виконувати різні операції, такі як:

  • Читання та запис значення комірки
  • Зміна формату комірки
  • Додавання та видалення рядків і стовпців
  • Копіювання та переміщення даних
  • І багато іншого

Для роботи з активним листом потрібно спочатку встановити його за допомогою властивості ActiveSheet. Після цього можна використовувати методи і властивості об'єкта листа для виконання необхідних операцій.

Також, можна використовувати метод Worksheets для роботи з листами за індексом або імені:

  • Worksheets (index) - повертає об'єкт аркуша за індексом
  • Worksheets (name) - повертає об'єкт листа по імені
Sub WorkWithWorksheets()Dim sheet1 As WorksheetDim sheet2 As WorksheetSet sheet1 = Worksheets(1) 'получаем первый листSet sheet2 = Worksheets("Лист2") 'получаем лист с именем "Лист2"MsgBox "Имя первого листа: " & sheet1.NameMsgBox "Имя второго листа: " & sheet2.NameEnd Sub

В даному прикладі ми оголошуємо дві змінні типу Worksheet-sheet1 і sheet2. Потім, за допомогою методу Worksheets і цікавить нас параметра (індекс або ім'я) отримуємо об'єкти листів і встановлюємо їх у відповідні змінні. Далі виводимо імена цих листів в повідомленні за допомогою методу MsgBox.

Як визначити активний аркуш у Excel VBA

Для визначення активного аркуша в Excel VBA використовується властивість ActiveSheet. Дана властивість повертає об'єкт, що представляє поточний активний лист.

Приклад використання властивості ActiveSheet:

Sub DetermineActiveSheet () Dim activeWorksheet As Worksheet Set activeWorksheet = ActiveSheet MsgBox "активний аркуш:" & activeWorksheet.Name End Sub

В даному прикладі, через змінну activeWorksheet визначається Активний лист, а потім через функцію MsgBox виводиться повідомлення з ім'ям активного листа.

Також можна використовувати метод Select для установки активного листа:

Sub SelectSheet() Sheets ("Лист2").Select End Sub

В даному прикладі за допомогою методу Select активується лист з ім'ям"Лист2".

Зверніть увагу, що при використанні методу Select для установки активного листа, необхідно вказувати ім'я листа, до якого хочете переключитися.

Визначення активного аркуша в рамках VBA є необхідним кроком при роботі з листами і дозволяє зручно передавати дані між різними листами в робочій книзі.