#1
|
|||
|
|||
Turn off an Initialized Class
hello, i have an this sub that initializes a Class event that runs code on any change of the selection. I wanted to assign a Macro button to "turn off" the event.
Whats the proper VBA to 'de-initialize' the event? thanks Code:
Sub LoadMonitor() Set selMonitor = New Class1 MsgBox "Selection Change On" End Sub 'stored in Class Module Option Explicit Private WithEvents mWordApp As Word.Application Private Sub Class_Initialize() Set mWordApp = Word.Application End Sub Private Sub mWordApp_WindowSelectionChange(ByVal Sel As Selection) 'code here for selection change |
#2
|
||||
|
||||
There is no facility to do that. Either put your event code into a template that applies only to documents based on that template - so it doesn't affect documents based on other templates - or add some error trapping to ensure the event exits unless the document or selection conforms to certain specifications.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Thanks Paul, I Initialize this Selection event with a macro button, and based on what I select the code provides me various options to execute on certain sentences. The issue isnt about not having it run in other docs, because I can control when it is turned on. The issue is once it is turn on
Code:
Private Sub mWordApp_WindowSelectionChange(ByVal Sel As Selection) Right now i have to go into VBE and press the stop button on the debugger. I would like to add another button in my toolbar which I was hoping would "unload" or "terminate" the selection Event. Am i stuck with going into VBE to turn this Event WindowSelectionChange manually off everytime i dont want it effecting my selection? thanks again |
#4
|
||||
|
||||
OK, but you could have some additional code to conditionally enable/disable the WindowSelectionChange event. For example, in your normal code module:
Code:
Public bMon As Boolean Sub LoadMonitor() Set selMonitor = New Class1 Call EnableMonitor End Sub Sub EnableMonitor() bMon = True MsgBox "Selection Change On" End Sub Sub DisableLoadMonitor() bMon = False MsgBox "Selection Change Off" End Sub Then all you need do is add a single line to the WindowSelectionChange sub: Code:
Private Sub mWordApp_WindowSelectionChange(ByVal Sel As Selection) If bMon = False Then Exit Sub 'code here for selection change
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
I would like a function to add sequential numbers to a class number/name | Highlander01 | Excel | 5 | 01-22-2016 02:29 PM |
Is it possible to bind macros to keys not in the KeyCodeConstants class? | AlexR | Word VBA | 4 | 04-08-2013 10:15 AM |
Evernote--Class Notes | markg2 | Outlook | 0 | 05-10-2012 05:50 PM |
Looking for easy and quick way to draw on class notes "x-rays - image" | Lacrosseboss18 | PowerPoint | 0 | 02-04-2011 01:21 PM |
Want to search for "class", replacing with document property | YetAnotherAuthor | Word | 0 | 10-30-2009 09:43 AM |