#1
|
|||
|
|||
Underline Inserted Text
Hi Folks,
Another trip to the well for a Word VBA Newb... I have VBA code which opens a Word instance and programmatically populates the document with tables. However, each table must have a title, so my code is: Code:
Selection.Text = " Product Specifications" Selection.Font.Name = "calibri" Selection.Font.Size = 16 Selection.Font.Bold = True Selection.EndKey Unit:=wdStory 'Now add table... .Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed Code:
Selection.Text = " Product Specifications" Selection.Font.Name = "calibri" Selection.Font.Size = 16 Selection.Font.Bold = True Selection.Font.Underline = wdUnderlineSingle Selection.EndKey Unit:=wdStory 'Now add table... .Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed Of course, when I do, everything in the document after that line is underlined. I only want the titles underlined. What am I doing wrong, please? Thanks, -John |
#2
|
|||
|
|||
Ooops, I may have posted some crappy code before. If you're trying to just underline that word, maybe just the use find and replace to underline it? That should only underline that title:
Code:
With Selection.Find .Text = " Product Specifications" .Replacement.Text = " Product Specifications" .Replacement.Font.Underline = True .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll |
#3
|
|||
|
|||
Quote:
I thought of doing a find and replace, but I think it will be time-consuming. The report is dynamic, generated on the fly by a definition which drives it. It may insert 10 tables, each with it own unique table title. Each title must be underlined. I would like to underline each title at the time the title is inserted but before the table is inserted. Thoughts? Thanks, -John |
#4
|
|||
|
|||
I'm afraid I can't help you , I'm still somewhat of a novice myself.
Bump for a better answer- |
#5
|
||||
|
||||
Create or modify a paragraph style that has the characteristics you want, assign it to a keyboard shortcut (or use the ribbon) and apply it to the paragraph in question.
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#6
|
|||
|
|||
Quote:
The code creates title text which I want underlined, followed below by some more text (not underlined) or a table. I am trying to underline (by code) the title text only, immediately after creating it or as it is created. Thanks, -John |
#7
|
||||
|
||||
My point was that styles are the best way of formatting text. i.e. format (say) Heading 2 style to be 16 point Calibri Bold, Underlined and apply that to the paragraph that is the table title.
Using VBA you have to identify the variable texts to be formatted and you have not explained enough to be able to do that however .... If the table title is the paragraph immediately before each table then Code:
Sub U_LineTableTitles() Dim oRng As Range Dim oTable As Table For Each oTable In ActiveDocument.Tables Set oRng = oTable.Range.Previous.Paragraphs(1).Range With oRng .Font.Name = "Calibri" .Font.Size = 16 .Font.Bold = True .Font.Underline = wdUnderlineSingle 'Or instead of the font commands '.Style = "Heading 2" .Collapse 0 End With Next oTable End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#8
|
|||
|
|||
Quote:
Having said that, I do not quite grasp the paragraph method. When I use a paragraph to separate text from the table (Selection.TypeParagraph), I get a blank line; which I do not want. So I have: Code:
Selection.TypeParagraph 'Product Specifications Selection.Text = " Product Specifications" Selection.Font.Name = "calibri" Selection.Font.Size = 16 Selection.Font.Bold = True 'Selection.Font.Underline = wdUnderlineSingle Selection.EndKey Unit:=wdStory .Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed With .Tables(x) Obviously, I haven't tried it yet. From my tardy response to your kind advice, you can see I have been pulled in other directions at work right now. I will try your method and hopefully my thought that I haven't closed the paragraph is incorrect. I would appreciate any explaination of the TypeParagraph method and its proper use... Thank you, -John |
#9
|
||||
|
||||
TypeParagraph will insert a paragraph break. You don't need an extra one. There will be one at the end of the paragraph before your table. If you want more space add it to the paragraph.
It is better to set ranges and work with ranges and name the tables if you wish to process them e.g. Code:
Dim oRng As Range Dim oTable As Table Set oRng = Selection.Range With oRng 'Product Specifications .Text = " Product Specifications" .Font.Name = "Calibri" .Font.Size = 16 .Font.Bold = True .Collapse 0 'collapse the range to its end 'Insert a table at the range Set oTable = .Tables.Add(Range:=oRng, NumRows:=3, _ NumColumns:=4, _ DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:=wdAutoFitFixed) .End = oTable.Range.End + 1 'set the end of the range to just beyond the table 'do stuff with otable .Collapse 0 'collapse the range to its end 'Add another heading .Text = " Another heading" .Font.Name = "Calibri" .Font.Size = 16 .Font.Bold = True .Collapse 0 'collapse the range to its end 'Insert a table at the range Set oTable = .Tables.Add(Range:=oRng, NumRows:=3, _ NumColumns:=4, _ DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:=wdAutoFitFixed) .End = oTable.Range.End + 1 'set the end of the range to just beyond the table 'do stuff with otable .Collapse 0 'collapse the range to its end .Select 'moves the cursor to the end of the table End With
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#10
|
|||
|
|||
I never posted a reply.
Thank you Graham. -John |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Replacing a comment with underline or other formatting (or adding that formatting to commented text) | paulkaye | Word | 4 | 05-16-2016 05:38 AM |
Is there a way of having text automatically inserted based on the selection of other text? | MiniMum97 | Word | 2 | 04-12-2016 06:09 AM |
Copy Underline text from Word and Paste into excel | rfaris | Excel Programming | 7 | 10-05-2015 05:56 AM |
Select text to be underline and bold | ksigcajun | Word VBA | 1 | 03-16-2015 07:51 PM |
How to remove the UNDERLINE from a hyperlink text? | Learner7 | PowerPoint | 3 | 05-17-2010 09:35 PM |