Creating a self install macro?

后端 未结 1 1304
小鲜肉
小鲜肉 2020-12-16 06:25

Hello I create many macros for my co workers. The current method I have for distributing to another computer is going into the vba editor and importing.

I would rea

相关标签:
1条回答
  • 2020-12-16 07:20

    You need to enable Microsoft Scripting Runtime library under references. (VBE -> Tools -> References. Check the box.)

    Basically, you create a string that holds the code of the macro you want to install. Obviously, the string could be really long with many lines of code so you might need several string variables.

    Dim toF As Workbook
    Dim codeMod As CodeModule
    Dim code As String
    Dim fso As Scripting.FileSystemObject
    Dim folder As folder
    Dim name As String, file As String
    
    Application.ScreenUpdating = False
    
    Set fso = New FileSystemObject
    Set folder = fso.GetFolder("C:\folder\here")
    name = nameOfFileHere
    file = folder & "\" & name
    
    Set toF = Workbooks.Open(file)
    'modify ThisWorkbook  to place it elsewhere
    Set codeMod = toF.VBProject.VBComponents("ThisWorkbook").CodeModule
    
    'erase everything if code already exists
    If codeMod.CountOfLines > 0 Then
        codeMod.DeleteLines 1, codeMod.CountOfLines
    End If
    
    'dump in new code
    code = _
    "Private Sub Workbook_Open()" & vbNewLine & _
    "   Dim user as String" & vbNewLine & _
    "   Dim target as String" & vbNewLine & _
    "   user = Application.UserName" & vbNewLine & _
    "   target = """ & findUser & """" & vbNewLine & _
    "   If user = target then" & vbNewLine & _
    "   MsgBox ""I just dumped in some code.""" & vbNewLine & _
    "   End if" & vbNewLine & _
    "End Sub" & vbNewLine
    
    With codeMod
        .InsertLines .CountOfLines + 1, code
    End With
    
    Application.ScreenUpdating = True
    
    0 讨论(0)
提交回复
热议问题