![]() |
#1
|
|||
|
|||
![]()
Hi,
First off apologies, I know next to nothing about VBA. Have been given an output from another program which I need to put into Word to tidy up as a report. The original programmer has put the title as Heading 1 and then Heading 1 as Heading 2 etc, etc. I don't have the code so can't fix at source. What I need to do is iterate through the headings and promote them up a level. There is only one Heading 1 so that would become title. Heading 2 = Heading 1 etc etc. Have found some code to create a Table Of Contents, but not sure how to set where I want to put it. There is some text before the first Heading 1/title which is always the same so can get rid of, but the Heading will contain varying text so cannot do a standard find. Want to do all of this in Macros as there will be a lot of these reports to do over the coming months. Many thanks for any help you can offer. |
#2
|
||||
|
||||
![]()
Select All and then promote. This is done with two keyboard commands
Ctrl-A followed by Alt-Shift-Left Arrow
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
![]()
Thanks for your reply. Unfortunately, that does not work for me on a Mac. I looked out the Outline view and tried to do what you suggested manually and it won't promote a Heading 1 style to a Title style either.
From playing around with things while recording a macro it looks like the following will do what you suggested manually using keyboard shortcuts Selection.WholeStory Selection.Paragraphs.OutlinePromote However I need to somehow automatically select the text of whatever is in style Heading 1 and change that to Title - > Selection.Style = ActiveDocument.Styles("Title") If anyone knows how I can auto select the Heading 1 text I would be very grateful. The text will be dynamic so I can't look for a set string :-( Last edited by NewVBAUser; 11-30-2021 at 04:54 AM. Reason: more detail added |
#4
|
||||
|
||||
![]()
Before the outline promote is run you will need to handle the Heading 1 to change its style to Title. This should be done with a Find and Replace. If you are using a macro, this would do it
Code:
Sub Macro2() With ActiveDocument.Range.Find .ClearFormatting .Style = ActiveDocument.Styles("Heading 1") .Replacement.ClearFormatting .Replacement.Style = ActiveDocument.Styles("Title") .Text = "" .Wrap = wdFindContinue .Format = True .Execute Replace:=wdReplaceAll End With ActiveDocument.Range.Paragraphs.OutlinePromote End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#5
|
|||
|
|||
![]()
Thanks Andrew
|
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
NNL | Word | 1 | 08-09-2017 02:52 PM |
Numbered headings go nuts after level 3/4 | billy8b8 | Word | 11 | 02-05-2016 08:02 PM |
![]() |
emmyb | Word | 1 | 09-10-2014 11:30 AM |
Config style to restart numbering if it it comes after a style of a higher level | ghumdinger | Word | 7 | 08-31-2011 01:10 AM |
![]() |
falieson | Word | 1 | 06-18-2010 12:01 AM |