#1
|
|||
|
|||
Word VBA overlay and restore word2016 heading / footer style
My document shows a "landing" form that provides command buttons for the various functions (Waivers, Invoices, Roster and Notary). I coded the document heading in Times New Roman 14 Bold.
Each of the subforms replaces the Heading, and in the case of the Invoice, replaces both the header and footer with a logo image. In anticipation of restoring the Heading when the subforms unload, the code below shows my attempt to capture the default heading before invoking the subforms. I am able to restore the text, but the style is lost, defaulting to Calabri 11 Normal. I've resorted to testing with a module (so as not to corrupt my main application). Here's the code Code:
Sub Main() Dim strCurrentHeading As String Dim objHeaderStyles As Object 'clicking heading text shows Times New Roman 14 Bold strCurrentHeading = Word.ActiveDocument.Sections(1).Headers(1).Range.Text Set objHeaderStyles = Word.ActiveDocument.Styles(wdStyleHeading1) 'debug print Styles show Calibri 11 Normal 'Load Header Word.ActiveDocument.Sections(1).Headers(1).Range.Text = "" 'Restore Heading 'loosely based on: https://stackoverflow.com/questions/56697719/_ how-to-change-style-of-some-texts-to-style-of-heading-1-without-affect-rest-of-t 'debug print Styles show Calibri 11 Normal With ActiveDocument.Styles(wdStyleHeading1) .ParagraphFormat.Alignment = wdAlignParagraphCenter .Font.Name = "Times New Roman" .Font.Size = 14 .Font.Bold = True End With 'debug print Styles show Calibri 11 Normal Word.ActiveDocument.Sections(1).Headers(1).Range.Text = strCurrentHeading 'debug print Styles show Calibri 11 Normal Exit Sub ... |
#2
|
||||
|
||||
Your code is not specifying the style in the Header. If you want to control the look of the header then you should apply a style to that range (and make sure the style looks the way you want it to).
Code:
Word.ActiveDocument.Sections(1).Headers(1).Range.Style = "Header"
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
Thank you Guessed.
Whine alert: I do not understand the concept. Because of that, I do not know how to "apply a style to that range". Obviously the following does not do that. Code:
Word.ActiveDocument.Sections(1).Headers(1).Range.Style = "Header" With ActiveDocument.Styles(wdStyleHeading1) .ParagraphFormat.Alignment = wdAlignParagraphCenter .Font.Name = "Times New Roman" .Font.Size = 14 .Font.Bold = True End With Might you share the specific code that would achieve my Bold, 14 Point, Times New Roman heading? |
#4
|
|||
|
|||
“Header” and “Heading” are entirely different. The default style for a page header is wdStyleHeader, not wdStyleHeading1. Headings are used in the body of the document to organise content by subject.
|
#5
|
|||
|
|||
Thank you @Italophile. That did it.
All that's left is to conditionally center a .png image in the footer without losing the "Page X of Y" on the right. |
Tags |
header and footer, vba code, word2016 |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Word: adding tabs to a heading style | sakols | Word | 11 | 05-31-2019 10:02 AM |
Word 2010 Having more than one font for same style heading | normancamp | Word | 1 | 08-06-2018 02:21 PM |
How to restore my Style Header 3? | jongleur | Word | 3 | 05-16-2017 10:48 AM |
How to Restore Heading 1, Heading 2, etc. within a Word Document | cheech1981 | Word | 9 | 01-11-2017 02:14 AM |
Very frequent heading style, but still not built in Word!!!!! why??? | Jamal NUMAN | Word | 17 | 06-30-2011 05:47 PM |