Как в рабочей книге скрыть стандартные кнопки, которые отвечают за отправку книги по электронной почте?

Для того, чтобы в нужной рабочей книге "заблокировать" использование команд, которые позволяют отправить эту книгу по электронной почте, скопируйте нижеприведённый код в модуль ThisWorkbook (ЭтаКнига) нужной рабочей книги (при необходимости перечень, содержащий ID команд, отвечающих за отправку сообщений, можно увеличить)

code: #vba
Private Sub Workbook_Activate()
    HiddenControls False, msoBarNoCustomize
End Sub
 
Private Sub Workbook_Deactivate
    HiddenControls True, msoBarNoProtection
End Sub
 
Private Sub HiddenControls(ControlVisible As Boolean, BarProtection%)
    Dim iControl As CommandBarControl
    Dim iControls As CommandBarControls
 
    '2188 "Соо&бщение (как вложение)..."
    '3708 "&Отправить"
    '3738 "&Сообщение"
    '30095 "&Отправить" ' CommandBars("Send To")

    For Each iControlID In Array(2188, 3708, 3738)
        Set iControls = Application.CommandBars.FindControls(ID:=iControlID)
        If Not iControls Is Nothing Then
           For Each iControl In iControls
               iControl.Visible = ControlVisible '.Enabled
               iControl.Parent.Protection = BarProtection '
           Next
        End If
    Next
    Application.CommandBars(1).Protection = BarProtection
End Sub

Если подобный финт нужно применить ко всем рабочим книгам, то замените события Workbook_Activate, Workbook_Deactivate на события Workbook_Open, Workbook_BeforeClose и расположите их, например, в модуле ThisWorkbook (ЭтаКнига) личной книги макросов "Personal.xls"

Актуально только для MS Excel 2000, XP

Поделиться:

Похожие статьи: