![]() |
|
#1
|
|||
|
|||
|
Hi,
I have this little code to add borders to pictures in a word doc and a little text below (like a caption with a number but couldn't find out how to reset captions index each time the macro is run so I made it this way) Sub FormatImages() Dim i As Integer Dim oInlineShp As InlineShape i = 0 For Each oInlineShp In ActiveDocument.InlineShapes With oInlineShp If .Borders(wdBorderTop).LineStyle = wdLineStyleNone Then .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineWidth = wdLineWidth225pt .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineWidth = wdLineWidth225pt .Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineWidth = wdLineWidth225pt .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderBottom).LineWidth = wdLineWidth225pt i = i + 1 .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter .Range.InsertAfter vbCr & "Foto " & i & vbCr .Range.Font.Bold = True End If End With Next End Sub It works fine except that I would like to format (bold) the text inserted... I can't find out how to do that. Range.font.bold = true doesn't work. [Code] doesn't work from my smartphone, sorry Edit: I just found a solution using the sélection method, extending the selection 2 lines down and formatting the whole selection 😉 |
|
#2
|
||||
|
||||
|
It is a question of setting the range appropriately e.g.
Code:
Sub FormatImages()
Dim i As Integer
Dim oInlineShp As InlineShape
Dim oRng As Range
For i = 1 To ActiveDocument.InlineShapes.Count
Set oInlineShp = ActiveDocument.InlineShapes(i)
With oInlineShp
If .Borders(wdBorderTop).LineStyle = wdLineStyleNone Then
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
.Borders(wdBorderLeft).LineWidth = wdLineWidth225pt
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
.Borders(wdBorderRight).LineWidth = wdLineWidth225pt
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
.Borders(wdBorderTop).LineWidth = wdLineWidth225pt
.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
.Borders(wdBorderBottom).LineWidth = wdLineWidth225pt
Set oRng = .Range
oRng.InsertAfter vbCr
oRng.End = oRng.Paragraphs.Last.Range.Next.Paragraphs(1).Range.End - 1
oRng.Collapse 0
oRng.ParagraphFormat.Alignment = wdAlignParagraphCenter
oRng.Text = "Foto " & i
oRng.Font.Bold = True
End If
End With
Next i
Set oInlineShp = Nothing
Set oRng = Nothing
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
|||
|
|||
|
I know it's better to use range than selection so I guess I'll use your solution.
Thanks gmayor for your help. |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Pictures not appearing when placed behind text
|
Ray200 | Drawing and Graphics | 3 | 04-20-2016 06:52 AM |
putting pictures within text
|
ketanco | Word | 2 | 04-05-2016 10:49 AM |
Problems with pictures and text flow
|
Jennifer Murphy | Drawing and Graphics | 2 | 02-25-2016 11:44 AM |
| Asking about In Text Pictures, and Text surrounding | azbaby543 | Word | 0 | 02-25-2016 11:22 AM |
| How to remove all pictures but keep text boxes | gn4619 | Word VBA | 2 | 10-22-2015 08:19 PM |