|
Delete a VBA Module From Excel
Delete a VBA macro module from Excel with this macro. This macro allows you to fully remove a macro module from Excel. This is great when you need to quickly clean up your macros, vba, or just leftover modules in Excel. You do need to be careful not to delete a module that contains important code.
This is a great macro and is very powerful.
To use this macro, you need to do two things. First, replace Module1 with the name of the actual module which you want to delete. If you wanted, you could include this in a loop in order to delete all modules from the workbook in Excel. Second, you need to enable access to the vba project object model - > In previous versions of Excel go to Tools > Macro > Security - Trusted Publishers check the box next to "Trust access to Visual Basic Editor". In Excel 2007 go to Office Button > Excel Options > Trust Center > Trust Center Settings > Macro Setting and check the box next to "Trust access to the VBA project object model".
Where to install the macro: Module
Excel Macro to Delete a VBA Module From Excel
Sub Delete_Module()
Dim vbCom As Object
Set vbCom = Application.VBE.ActiveVBProject.VBComponents
vbCom.Remove VBComponent:= _
vbCom.Item("Module1")
End Sub
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press "Alt + F11" - This will open the Visual Basic Editor - Works for all Excel Versions.
Or For other ways to get there, Click Here.
For Excel Versions Prior to Excel 2007 Go to Tools > Macros > Visual Basic Editor
For Excel 2007 Go to Office Button > Excel Options > Popular > Click Show Developer tab in the Ribbon. Then go to the Developer tab on the ribbon menu and on the far left Click Visual Basic
- On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE'S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- Go to the menu at the top of the window and click Insert > Module
- Another window should have opened within the Visual Basic Editor's window. Within this new window, paste the macro code. Make sure to paste the code underneath the last line of anything else that is in the window.
- Go to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- Directly underneath your excel file called VBAProject(your file's name here), click the Microsoft Excel Objects folder icon to open that drop-down list.
- Then, at the bottom of the list that appears, double-click the ThisWorkbook text.
- A new window inside the Visual Basic Editor's window will appear. In this new window, paste the code for the macro. Make sure to paste this code underneath the last line of any other code which is already in the window.
- Go to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Directly underneath your excel file called VBAProject(your file's name here), click the Microsoft Excel Objects folder icon to open that drop-down list.
- Within the list that appears you will see every worksheet that is in that excel file. They will be listed as such: Sheet1(NAME OF SHEET HERE) and under that will be Sheet2(NAME OF SHEET HERE). Select the sheet in which you want the macro to run and double-click that sheet.
- A new window inside the Visual Basic Editor's window will appear. In this new window, paste the code for the macro. Make sure to paste this code underneath the last line of any other code which is already in the window.
- Repeat steps b and c for every sheet you want the macro to work in. Putting the macro in one sheet will not enable it for any other sheets in the workbook.
- Go to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
Similar Helpful Excel Resources
how to access Sheet module, normal module, Worbook module to type code?
Thanks
new user to vba
How can I delete a module from VBA? What I have is a macro that is in a
template. After the macro runs and I go to save the spreadsheet, I would like
to delete the macro and all code.
Hi,
Could anyone break the below syntax and explain me?
Set vbCom = Application.VBE.ActiveVBProject.VBComponents
vbCom.Remove VBComponent:= vbCom.Item("Module1")
Thanx...
cheers
So i trying to get this macro to delete the module it works just fine if the project is not protected but if it is protected if fails
Does anybody know how to fix this problem
Thank you I appreciate any help
Code:
Private Sub Workbook_Open()
Dim exdate As Date
Dim vbCom As Object
exdate = "01/01/2011"
If Date > exdate Then
MsgBox "Sorry please get a new macro from your admin"
Set vbCom = Application.VBE.ActiveVBProject.VBComponents
vbCom.Remove VBComponent:= _
vbCom.Item("Mo3434")
Exit Sub
End If
MsgBox ("You have " & exdate - Date & "Days left to get a new macro")
Application.Save
End Sub
I'm trying to delete all the controls, modules and code from specific workbooks and then add back new controls, modules and code.
I'm using the following to delete the modules and code and am not sure why two of the four modules in a specific workbook will not delete. Stepping through the code verifies that the commands are being executed and if I stop the code the two modules are deleted.
I could stop the code and then restart it, but I thought I'd see if anyone had any ideas first.
Code:
Sub DeleteAllVBACode()
'** Deleting All VBA Code In A Project
'** This code will delete ALL VBA code in a VBProject.
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = Workbooks(frmOptions.lblWorkbookName.Caption).VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
''' Set VBComp = VBProj.VBComponents("modTTWLossConstants")
''' VBProj.VBComponents.Remove VBComp
''' Set VBComp = VBProj.VBComponents("modWLossOther")
''' VBProj.VBComponents.Remove VBComp
End Sub
I have also tried the commented out code, to remove the specific modules; but still no luck.
Any help will be appreciated!
Thanks
Hi all, is it possible to delete a module for another spreadsheet ?
Les Stout
*** Sent via Developersdex http://www.developersdex.com ***
Hello,
I inserted a second module into a project. Now I want to delete it. Only i can't figure out how to do this. I highlite it and right click or click edit from the toolbar but i'm provided no options. I can't drag it to the trash either.
How do you delete a module?
Thanks!
I just want to delete the existing module which name is config and add it with new module which has the same name. It successfully run at the first time. when i click the button for second time, it generate error. when i see the code, it seem the old module being remove, but the new module name end with number "1". how can solve this problem?? Note that the .bas file name is Module2.11.bas.
Quote:
Private Sub addremove_Click()
ActiveWorkbook.VBProject.VBComponents.Remove ActiveWorkbook.VBProject.VBComponents("config")
ActiveWorkbook.VBProject.VBComponents.Import ("c:\Module2.11.bas")
End Sub
I added a module to a project (Excel 2003 on Winderz XP) and then realized I didn't need to. I now can't delete it.
I've tried right clicking, select+Delete button, select and different menu options. Nothing presents itself in an apparent fashion that would allow me to delete this.
Can anyone tell me how to do this or do I just let that module sit there forever? Thats not a bad thing, it doesn't adversely affect it but it still annoys me.
Hi Guys
I use the following code to delete modules in vba before mailing out the finished versions.
Sub DeleteModule(ModName)
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents(ModName)
VBProj.VBComponents.Remove VBComp
End Sub
One of the new sheets I am working with has the vba modules protected with a password, I know the password and currently delete them manually.
Can you advise how to alter the code above to include removing the password from the protected modules before the code is applied to delete them.
Hope that makes sense
Cheers
Mulderman
|
|