У меня есть кнопка, которая создаст новую книгу и сохранит ее как новую. Можно ли автоматически добавить код в лист новой созданной книги? как?

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

это возможно в макросе VBA?

1 ответ1

0
Sub CreateWorkbookWithWorksheetProcedures()
    Dim wbk As Workbook
    Dim objVBProj As Object
    Dim objVBComp As Object
    Dim objCodeMod As Object
    Dim lLineNum As Long
    Dim sProcLines As String
' Create new workbook
    Set wbk = Workbooks.Add
    Set objVBProj = wbk.VBProject
    Set objVBComp = objVBProj.VBComponents("Sheet1")
    Set objCodeMod = objVBComp.CodeModule
' Add event procedure
    With objCodeMod
        lLineNum = .CreateEventProc("Change", "Worksheet")
        lLineNum = lLineNum + 1
        .InsertLines lLineNum, "    MsgBox ""Hello World"""
    End With
' Add common procedure
    lLineNum = objCodeMod.CountOfLines + 1
    sProcLines = "Sub HelloWorld()" & vbCrLf & _
        "    MsgBox ""Hello, World""" & vbCrLf & _
        "End Sub"
    objCodeMod.InsertLines lLineNum, sProcLines
' Save workbook
    wbk.SaveAs "c:\tmp\wbk.xlsm", xlOpenXMLWorkbookMacroEnabled
    wbk.Close
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .