Макрос по быстрому удалению лишних пробелов через контекстное меню

В одной из прошлых статей мы разбирали, как добавить возможность сохранения листа через измененное контекстное меню листа. Там же вы можете узнать, как открыть личную книгу макросов и с какими модулями нужно работать. Здесь мы лишь разберем то, что и куда нужно добавить.

Итак, чтобы при открытии приложения Excel на компьютере у нас обновлялось контекстное меню, нам нужно в личной книге макросов в разделе VBAProject (PERSONAL.XLSB) в пункте ЭтаКнига, добавить процедуру, к примеру такую:

Private Sub Workbook_Open()
    MyComBar
End Sub

Этот код означает, что при открытии любой книги будет запускаться макрос MyComBar.

Далее, нам нужно описать, что будет происходить, при открытии книг. Для этого в VBAProject (PERSONAL.XLSB) создаем новый модуль (для этого активируйте раздел и через правую кнопку мыши выберите Insert – Module). В модуле прописываем следующую процедуру:

Sub MyComBar()
    Application.CommandBars("cell").Reset
    With Application.CommandBars("cell").Controls.Add(Type:=1, before:=5)
        .OnAction = "del_spaces"
        .Caption = "Удалить лишние пробелы"
    End With
End Sub

То есть, при открытии макрос будет обновлять контекстное меню ячейки и добавлять в него пункт “Удалить лишние пробелы”. В качестве аргумента OnAction мы передаем название процедуры, которая будет активироваться при нажатии на этот пункт меню.

И последнее, ниже этой процедуры добавляем еще одну, которая будет называться del_spaces.

Sub del_spaces()
    Dim CurrRng As Range
    Set CurrRng = Selection
    For Each cell In CurrRng
        cell.Value = Application.Trim(cell.Value)
    Next
End Sub

Вот, к примеру, как это будет выглядеть:

Макрос по быстрому удалению лишних пробелов через контекстное меню

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий