В одной из прошлых статей мы разбирали, как добавить возможность сохранения листа через измененное контекстное меню листа. Там же вы можете узнать, как открыть личную книгу макросов и с какими модулями нужно работать. Здесь мы лишь разберем то, что и куда нужно добавить.
Итак, чтобы при открытии приложения 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
Вот, к примеру, как это будет выглядеть:
