Skip to content

Commit 090d1a5

Browse files
committed
Merge branch 'pull21'
2 parents 8f80025 + e886f22 commit 090d1a5

File tree

2 files changed

+31
-11
lines changed

2 files changed

+31
-11
lines changed

src/vbaDeveloper.xlam/Menu.bas

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ Public Sub createMenu()
3939
caption = projectName & " (" & Dir(project.fileName) & ")" '<- this can throw error
4040

4141
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 & """'"
4545

4646
addMenuItem exSubMenu, exCommand, caption
4747
addMenuItem imSubMenu, imCommand, caption
@@ -121,29 +121,28 @@ Public Sub refreshMenu()
121121
menu.createMenu
122122
End Sub
123123

124-
Public Sub exportVbProject(ByVal projectName As String)
124+
Public Sub exportVbProject(ByVal projectPath As String)
125125
On Error GoTo exportVbProject_Error
126126

127127
Dim project As VBProject
128-
Set project = Application.VBE.VBProjects(projectName)
128+
Set project = GetProjectByPath(projectPath)
129129
Build.exportVbaCode project
130130
Dim wb As Workbook
131131
Set wb = Build.openWorkbook(project.fileName)
132132
NamedRanges.exportNamedRanges wb
133133
MsgBox "Finished exporting code for: " & project.name
134134

135-
On Error GoTo 0
136135
Exit Sub
137136
exportVbProject_Error:
138137
ErrorHandling.handleError "Menu.exportVbProject"
139138
End Sub
140139

141140

142-
Public Sub importVbProject(ByVal projectName As String)
141+
Public Sub importVbProject(ByVal projectPath As String)
143142
On Error GoTo importVbProject_Error
144143

145144
Dim project As VBProject
146-
Set project = Application.VBE.VBProjects(projectName)
145+
Set project = GetProjectByPath(projectPath)
147146
Build.importVbaCode project
148147
Dim wb As Workbook
149148
Set wb = Build.openWorkbook(project.fileName)
@@ -157,11 +156,11 @@ importVbProject_Error:
157156
End Sub
158157

159158

160-
Public Sub formatVbProject(ByVal projectName As String)
159+
Public Sub formatVbProject(ByVal projectPath As String)
161160
On Error GoTo formatVbProject_Error
162161

163162
Dim project As VBProject
164-
Set project = Application.VBE.VBProjects(projectName)
163+
Set project = GetProjectByPath(projectPath)
165164
Formatter.formatProject project
166165
MsgBox "Finished formatting code for: " & project.name & vbNewLine _
167166
& vbNewLine _
@@ -250,3 +249,22 @@ Function GetFolder(InitDir As String) As String
250249
GetFolder = sItem
251250
Set fldr = Nothing
252251
End Function
252+
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+
On Error GoTo skipone
259+
If UCase(project.fileName) = UCase(projectPath) Then
260+
Set GetProjectByPath = project
261+
Exit Function
262+
End If
263+
nextprj:
264+
Next project
265+
'If not found return nothing
266+
Exit Function
267+
skipone:
268+
Resume nextprj
269+
End Function
270+

src/vbaDeveloper.xlam/Test.bas

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ Public Sub testExport()
4646
Dim proj_name As String
4747
proj_name = "vbaDeveloper"
4848

49-
menu.exportVbProject proj_name
49+
Dim vbaProject As Object
50+
Set vbaProject = Application.VBE.VBProjects(proj_name)
51+
menu.exportVbProject vbaProject.fileName
5052
End Sub
5153

5254

0 commit comments

Comments
 (0)