@@ -39,9 +39,9 @@ Public Sub createMenu()
39
39
caption = projectName & " (" & Dir(project.fileName) & ")" '<- this can throw error
40
40
41
41
Dim exCommand As String , imCommand As String , formatCommand As String
42
- exCommand = "'Menu.exportVbProject """ & projectName & """'"
43
- imCommand = "'Menu.importVbProject """ & projectName & """'"
44
- formatCommand = "'Menu.formatVbProject """ & projectName & """'"
42
+ exCommand = "'Menu.exportVbProject """ & project.fileName & """'"
43
+ imCommand = "'Menu.importVbProject """ & project.fileName & """'"
44
+ formatCommand = "'Menu.formatVbProject """ & project.fileName & """'"
45
45
46
46
addMenuItem exSubMenu, exCommand, caption
47
47
addMenuItem imSubMenu, imCommand, caption
@@ -121,11 +121,11 @@ Public Sub refreshMenu()
121
121
menu.createMenu
122
122
End Sub
123
123
124
- Public Sub exportVbProject (ByVal projectName As String )
124
+ Public Sub exportVbProject (ByVal projectPath As String )
125
125
On Error GoTo exportVbProject_Error
126
126
127
127
Dim project As VBProject
128
- Set project = Application.VBE.VBProjects(projectName )
128
+ Set project = GetProjectByPath(projectPath )
129
129
Build.exportVbaCode project
130
130
Dim wb As Workbook
131
131
Set wb = Build.openWorkbook(project.fileName)
@@ -139,11 +139,11 @@ exportVbProject_Error:
139
139
End Sub
140
140
141
141
142
- Public Sub importVbProject (ByVal projectName As String )
142
+ Public Sub importVbProject (ByVal projectPath As String )
143
143
On Error GoTo importVbProject_Error
144
144
145
145
Dim project As VBProject
146
- Set project = Application.VBE.VBProjects(projectName )
146
+ Set project = GetProjectByPath(projectPath )
147
147
Build.importVbaCode project
148
148
Dim wb As Workbook
149
149
Set wb = Build.openWorkbook(project.fileName)
@@ -157,11 +157,11 @@ importVbProject_Error:
157
157
End Sub
158
158
159
159
160
- Public Sub formatVbProject (ByVal projectName As String )
160
+ Public Sub formatVbProject (ByVal projectPath As String )
161
161
On Error GoTo formatVbProject_Error
162
162
163
163
Dim project As VBProject
164
- Set project = Application.VBE.VBProjects(projectName )
164
+ Set project = GetProjectByPath(projectPath )
165
165
Formatter.formatProject project
166
166
MsgBox "Finished formatting code for: " & project.name & vbNewLine _
167
167
& vbNewLine _
@@ -250,3 +250,17 @@ Function GetFolder(InitDir As String) As String
250
250
GetFolder = sItem
251
251
Set fldr = Nothing
252
252
End Function
253
+
254
+ Function GetProjectByPath (ByVal projectPath As String ) As VBProject
255
+ 'Simple search to find project by file path
256
+ Dim project As VBProject
257
+ For Each project In Application.VBE.VBProjects
258
+ If UCase(project.fileName) = UCase(projectPath) Then
259
+ Set GetProjectByPath = project
260
+ Exit Function
261
+ End If
262
+ Next project
263
+ 'If not found return nothing
264
+ Set GetProjectByPath = Nothing
265
+ End Function
266
+
0 commit comments