#1
|
|||
|
|||
Document_ContentControlBeforeDelete Event
I am developing a MS Word Add-in where Content Control text is locked and is changed automatically based on their sequence in document.
On Content Control delete event, I need to iterate on each control and change it's Range Text. I am able to do it but the problem is the Content Contorl which is just deleted is also part of ActiveDocument.ContentControls and when the event tries to unlock it and change the Range.Text, it throws run time error 5825 saying "Object has been deleted" Below is the my Document_ContentControlBeforeDelete event. Code:
Private Sub Document_ContentControlBeforeDelete(ByVal OldContentControl As ContentControl, ByVal InUndoRedo As Boolean) Dim ContentCtrl As ContentControl Dim Counter As Long Counter = 1 For Each ContentCtrl In ActiveDocument.ContentControls ContentCtrl.LockContents = False ContentCtrl.Range.Text = Counter ContentCtrl.LockContents = True Counter = Counter + 1 Next End Sub Is there any way to identify though code that a Content Control has been deleted so I can skip it in my loop. And attached is the sample document with this event. Thanks, Tejas |
#2
|
|||
|
|||
The quick and dirty way would be to use error handling. Here is another way:
Code:
Private Sub Document_ContentControlBeforeDelete(ByVal OldContentControl As ContentControl, ByVal InUndoRedo As Boolean) Dim lngIndex As Long Dim oCC As ContentControl Dim ContentCtrl As ContentControl Dim Counter As Long Counter = 1 For lngIndex = ActiveDocument.ContentControls.Count To 1 Step -1 Set oCC = ActiveDocument.ContentControls(lngIndex) If Not oCC.ID = OldContentControl.ID Then With oCC .LockContents = False .Range.Text = Counter .LockContents = True Counter = Counter + 1 End With End If Next lngIndex lbl_Exit: Exit Sub End Sub |
#3
|
|||
|
|||
Hi Greg,
Thanks for your reply. Actually this solution I have already done but I am not allowed to use On Error. Is there any property or any other kind of indication by which I can figure this out? |
#4
|
||||
|
||||
Tejas
Did you actually read Greg's macro? There is no On Error used there. The code is running when a CC is being deleted and it passes in the identity of that CC. Greg's code makes use of that information to exclude that particular CC.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#5
|
|||
|
|||
Hi Andrew,
Sorry about that. I have checked code again. Actually I have tried this approach already and it doesn't work on multiple Content Control delete. Do you have any suggestion to make it work on multiple Content Controls as well? Thanks. |
#6
|
||||
|
||||
What is the end game for this macro?
Is this an academic exercise to make all the CCs have an incrementing number or is there actually a real world use for this?
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
Tags |
content control, content control events, events |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
File beforeSave Event | Megazoid | Word VBA | 3 | 09-14-2014 01:41 AM |
Hyperlinks in Calendar Event? | komobu | Outlook | 0 | 07-16-2014 08:09 AM |
Workbook_Open event do not working? | beginner | Excel Programming | 8 | 04-11-2013 02:37 PM |
Duplicate event reminders | rgarneau | Outlook | 0 | 01-23-2012 08:58 AM |
Event Log - Outlook Crashed | Davva | Outlook | 0 | 11-10-2009 01:35 PM |