В этой статье мы создадим макрос для вставки нового модуля в книгу Excel.

Перед запуском макроса нам нужно указать тип и имя модуля.

ArrowMain

ArrowRaw

Как видно на скриншоте, у нас в книге только один модуль. В этом примере мы добавим модуль класса в книгу.

ArrowOutput

Логическое объяснение

В этой статье мы создали два макроса: CreateNewModule и CallingProcedure.

Макрос CreateNewModule используется для добавления нового модуля в зависимости от предоставленных входных данных.

Макрос CallingProcedure используется для ввода и вызова основного модуля.

Объяснение кода

Установите ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex)

Приведенный выше код используется для добавления нового модуля в проект VBA.

ModuleComponent.Name = NewModuleName Приведенный выше код используется для переименования вставленного компонента.

ModuleTypeConst = Cint (Диапазон («D12»). Значение)

Приведенный выше код используется для получения целочисленного значения из ячейки D12.

ModuleName = Sheet1.TextBox2.Value Приведенный выше код используется для получения значения из текстового поля.

Пожалуйста, введите код ниже

Option Explicit

Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String)

'Declaring variables

Dim ModuleComponent As VBComponent

Dim WBook As Workbook

'Creating object of active workbook

Set WBook = ActiveWorkbook

Set ModuleComponent = Nothing



On Error Resume Next

'Adding new module component

Set ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex)

If Not ModuleComponent Is Nothing Then

'Renaming the new module

ModuleComponent.Name = NewModuleName

End If

On Error GoTo 0

Set ModuleComponent = Nothing

End Sub

Sub CallingProcedure()

'Declare variables

Dim ModuleTypeConst As Integer

Dim ModuleName As String

'Getting value of module name and type of module

ModuleTypeConst = CInt(Range("D12").Value)

ModuleName = Sheet1.TextBox2.Value

'Calling CreateNewModule

CreateNewModule ModuleTypeConst, ModuleName

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]