Sub Создание_модуля()
With ThisDocument.VBProject.VBComponents.Add(vbext_ct_StdModule)
.Name = "new_module"
.CodeModule.InsertLines 1, "Sub One()"
.CodeModule.InsertLines 2, "MsgBox ""Меня создали автоматически с помощью VBA"""
.CodeModule.InsertLines 3, "End Sub"
End With
End Sub
Sub Удаление_модуля()
Dim Rm As VBComponent
For Each Rm In ThisDocument.VBProject.VBComponents
If Rm.Name = "new_module" Then
ThisDocument.VBProject.VBComponents.Remove Rm
Exit For
End If
Next Rm
End Sub
Sub Добавление_кода_кнопки()
With ThisDocument.VBProject.VBComponents("ThisDocument").CodeModule ' код добавляется в ThisDocument
Dim Имя_кнопки As String, Имя_процедуры As String
Имя_кнопки = "CommandButton1" ' здесь нужно будет поменять для другой кнопки
Имя_процедуры = Имя_кнопки & "_Click"
If .Find(Target:=Имя_процедуры, startline:=1, startcolumn:=1, endline:=-1, endcolumn:=-1, WholeWord:=True, MatchCase:=False) Then ' поиск, если есть уже такая процедура (-1 указывает на последнюю строку и последний столбец в модуле)
.DeleteLines .ProcStartLine(Имя_процедуры, vbext_pk_Proc), .ProcCountLines(Имя_процедуры, vbext_pk_Proc) ' удаляются строки от первой строки процедуры в количестве строк сколько эта процедура их содержит
End If
.InsertLines 1, "Private Sub " & Имя_процедуры & "()" ' добавление новой процедуры
.InsertLines 2, "MsgBox ""Press another key"""
.InsertLines 3, "End Sub"
End With
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.