Макрос по сохранению листа книги в качестве отдельного файла через меню

В этой статье мы рассмотрим способ добавления в контекстное меню листа (то меню, которое появляется в качестве выпадающего списка при нажатии на лист правой кнопкой мыши) нового пункта, который будет сохранять лист как отдельный файл.

Сохранение листа

Для того, чтобы реализовать такую возможность нам нужно использовать VBA. Сначала необходимо активировать раздел разработчика (более подробно о том, как это сделать написано в этой статье). После чего мы должны получить доступ к личной книге макросов (более подробно – здесь).

В результате, в разделе Project в VBA должен появиться пункт VBAProject (PERSONAL.XLSB). С ним мы и будем работать.

Личная книга макросов

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

Sub MyComBar()
    Application.CommandBars("Ply").Reset
    With Application.CommandBars("Ply").Controls.Add(Type:=1, before:=5)
        .OnAction = "save_sheets"
        .Caption = "Сохранить лист как файл"
    End With
End Sub

Sub save_sheets()
    Dim CurrWb, TempWb As Window
    Set CurrWb = ActiveWindow
    Set TempWb = ActiveWorkbook.NewWindow
    CurrWb.SelectedSheets.Copy
    TempWb.Close
    Application.Dialogs(xlDialogSaveAs).Show
    ActiveWorkbook.Close
End Sub

В процедуре MyComBar мы добавляем новый пункт в меню листа, определяем его название и закрепляем за пунктом выполнение второй процедуры save_sheets. При сохранении листа вам будет предложено выбрать место сохранения и изменить название.

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

Private Sub Workbook_Open()
    MyComBar
End Sub

Далее, перезагружаем Excel и все изменения применятся.

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

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

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

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

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