ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   programmatically open VBE and go to a specified procedure in target module? (https://www.excelbanter.com/excel-programming/303604-programmatically-open-vbe-go-specified-procedure-target-module.html)

DataFreakFromUtah

programmatically open VBE and go to a specified procedure in target module?
 
Hello all,

Win 2000
Excel 2000

I am wondering if there is a way to programmatically open the VBE and
go to a specific
procedure or macro in the target module (in this example: basModule1).
I have the code to go
to the target module, but I can't seem
to figure out a way for the procedure to open at the target procedure
or macro.
I spent some time looking at the object model and searching the
microsoft.public.excel.programming newsgroup, no luck.
Might anyone out there have an answer?
Thank you in advance for any information you may provide.
Cheers,
Tom


Sub OpenVBE()
' Open the Visual Basic Editor Programmatically

Application.VBE.MainWindow.Visible = True
'The next line of code goes to a specified module
ThisWorkbook.VBProject.VBComponents("basModule1"). Activate

End Sub

Jake Marx[_3_]

programmatically open VBE and go to a specified procedure in target module?
 
Hi DataFreakFromUtah,

I'm not well-versed with the VBE objects, but this seems to work:

Sub OpenVBE()
Dim lStartLine As Long

ThisWorkbook.VBProject.VBComponents("basModule1"). Activate

With Application.VBE.ActiveCodePane.CodeModule
lStartLine = .ProcStartLine("test2", 0)
.CodePane.SetSelection lStartLine, 1, lStartLine, 1
End With
End Sub


Just change the "test2" to the name of your procedure.

--
Regards,

Jake Marx
MS MVP - Excel
www.longhead.com

[please keep replies in the newsgroup - email address unmonitored]


DataFreakFromUtah wrote:
Hello all,

Win 2000
Excel 2000

I am wondering if there is a way to programmatically open the VBE and
go to a specific
procedure or macro in the target module (in this example: basModule1).
I have the code to go
to the target module, but I can't seem
to figure out a way for the procedure to open at the target procedure
or macro.
I spent some time looking at the object model and searching the
microsoft.public.excel.programming newsgroup, no luck.
Might anyone out there have an answer?
Thank you in advance for any information you may provide.
Cheers,
Tom


Sub OpenVBE()
' Open the Visual Basic Editor Programmatically

Application.VBE.MainWindow.Visible = True
'The next line of code goes to a specified module
ThisWorkbook.VBProject.VBComponents("basModule1"). Activate

End Sub


DataFreakFromUtah

programmatically open VBE and go to a specified procedure in target module?
 
Thanks Jake!
I was able to make the procedure work by adding one line of code to
it:
Application.VBE.MainWindow.Visible = True
Apparently the procedure wouldn't work if the VBE wasn't all ready
open.
I am in Win 2000, Excel 2000, with VBEToolsReferencesMicrosoft VBA
Extensibility 5.3 checked.
The procedure that worked for me is below:



Sub OpenVBEGoToSpecificMacro()

Dim lStartLine As Long
Application.VBE.MainWindow.Visible = True
ThisWorkbook.VBProject.VBComponents("ModuleNameHer e").Activate

With Application.VBE.ActiveCodePane.CodeModule
lStartLine = .ProcStartLine("VBAProcedureNameHere", 0)
.CodePane.SetSelection lStartLine, 1, lStartLine, 1
End With
End Sub






"Jake Marx" wrote in message ...
Hi DataFreakFromUtah,

I'm not well-versed with the VBE objects, but this seems to work:

Sub OpenVBE()
Dim lStartLine As Long

ThisWorkbook.VBProject.VBComponents("basModule1"). Activate

With Application.VBE.ActiveCodePane.CodeModule
lStartLine = .ProcStartLine("test2", 0)
.CodePane.SetSelection lStartLine, 1, lStartLine, 1
End With
End Sub


Just change the "test2" to the name of your procedure.

--
Regards,

Jake Marx
MS MVP - Excel
www.longhead.com

[please keep replies in the newsgroup - email address unmonitored]


DataFreakFromUtah wrote:
Hello all,

Win 2000
Excel 2000

I am wondering if there is a way to programmatically open the VBE and
go to a specific
procedure or macro in the target module (in this example: basModule1).
I have the code to go
to the target module, but I can't seem
to figure out a way for the procedure to open at the target procedure
or macro.
I spent some time looking at the object model and searching the
microsoft.public.excel.programming newsgroup, no luck.
Might anyone out there have an answer?
Thank you in advance for any information you may provide.
Cheers,
Tom


Sub OpenVBE()
' Open the Visual Basic Editor Programmatically

Application.VBE.MainWindow.Visible = True
'The next line of code goes to a specified module
ThisWorkbook.VBProject.VBComponents("basModule1"). Activate

End Sub


Peter T[_3_]

programmatically open VBE and go to a specified procedure in target module?
 
Have you tried, simply:

Sub Test()
Application.Goto "MyRoutine"
End Sub

Regards,
Peter

-----Original Message-----
Thanks Jake!
I was able to make the procedure work by adding one line

of code to
it:
Application.VBE.MainWindow.Visible = True
Apparently the procedure wouldn't work if the VBE wasn't

all ready
open.
I am in Win 2000, Excel 2000, with

VBEToolsReferencesMicrosoft VBA
Extensibility 5.3 checked.
The procedure that worked for me is below:



Sub OpenVBEGoToSpecificMacro()

Dim lStartLine As Long
Application.VBE.MainWindow.Visible = True
ThisWorkbook.VBProject.VBComponents

("ModuleNameHere").Activate

With Application.VBE.ActiveCodePane.CodeModule
lStartLine = .ProcStartLine

("VBAProcedureNameHere", 0)
.CodePane.SetSelection lStartLine, 1,

lStartLine, 1
End With
End Sub






"Jake Marx" wrote in message

...
Hi DataFreakFromUtah,

I'm not well-versed with the VBE objects, but this

seems to work:

Sub OpenVBE()
Dim lStartLine As Long

ThisWorkbook.VBProject.VBComponents

("basModule1").Activate

With Application.VBE.ActiveCodePane.CodeModule
lStartLine = .ProcStartLine("test2", 0)
.CodePane.SetSelection lStartLine, 1,

lStartLine, 1
End With
End Sub


Just change the "test2" to the name of your procedure.

--
Regards,

Jake Marx
MS MVP - Excel
www.longhead.com

[please keep replies in the newsgroup - email address

unmonitored]


DataFreakFromUtah wrote:
Hello all,

Win 2000
Excel 2000

I am wondering if there is a way to programmatically

open the VBE and
go to a specific
procedure or macro in the target module (in this

example: basModule1).
I have the code to go
to the target module, but I can't seem
to figure out a way for the procedure to open at the

target procedure
or macro.
I spent some time looking at the object model and

searching the
microsoft.public.excel.programming newsgroup, no luck.
Might anyone out there have an answer?
Thank you in advance for any information you may

provide.
Cheers,
Tom


Sub OpenVBE()
' Open the Visual Basic Editor Programmatically

Application.VBE.MainWindow.Visible = True
'The next line of code goes to a specified module
ThisWorkbook.VBProject.VBComponents

("basModule1").Activate

End Sub

.


Jake Marx[_3_]

programmatically open VBE and go to a specified procedure in target module?
 
Peter T wrote:
Have you tried, simply:

Sub Test()
Application.Goto "MyRoutine"
End Sub


Nice catch, Peter! I didn't think of that one.

--
Regards,

Jake Marx
MS MVP - Excel
www.longhead.com

[please keep replies in the newsgroup - email address unmonitored]


All times are GMT +1. The time now is 10:46 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com