#1
|
|||
|
|||
Programmatically make text box borders invisible
I am finding this is a real challenge.
This code supposes to set some properties of a text box. But Word sticks to the manually set defaults for auto shapes even if you try to change the defaults programmatically by using the property "SetShapesDefaultProperties" Code:
With Selection.ShapeRange(1) With .TextFrame .MarginLeft = 0 .MarginRight = 0 .MarginTop = 0 .MarginBottom = 0 End With .LockAnchor = False .WrapFormat.Type = wdWrapNone .Fill.Visible = msoFalse .Line.Visible = msoFalse End With Last edited by macropod; 01-01-2017 at 04:36 PM. Reason: Added code tags |
#2
|
||||
|
||||
You code works fine for me as-is. It can only affect a selected shape, not Word's defaults. However, if you insert:
.SetShapesDefaultProperties after: .Line.Visible = msoFalse Your current configuration becomes the default for all autoshapes added to the current document (e.g. they get inserted with no border & 0-width margins).
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Formatting objects inside a canvas
Thanks Paul for your prompt reply, and happy new year
Yes, the code seems correct, especially it does not return an error message but, after running, it does not change the formats specified. However, I was lucky this time, I found a solution. I used CanvasShapes and CanvasItems collections with a variable to refer to the textboxes then apply the formats. It worked. It seems the selection object is no good here. Just in case if anybody needs this remark, it wasted many hours of my time, here is the correct code Code:
Dim shpCanvas As Shape Dim shpCanvasShapes As CanvasShapes 'use to refer to each textbox inside the canvas Dim shpCanvasTB As Shape Set shpCanvas = ActiveDocument.Shapes("MainCanvas") Set shpCanvasShapes = shpGridCanvas.CanvasItems For Each shpCanvasTB In shpCanvasShapes If shpCanvasTB.Type = msoTextBox Then With shpCanvasTB .Fill.Visible = msoFalse .Line.Visible = msoFalse With .TextFrame .MarginLeft = 0 .MarginRight = 0 .MarginTop = 0 .MarginBottom = 0 End With .Select With Selection .Font.Size = 12 .ParagraphFormat.Alignment = wdAlignParagraphCenter .Font.Italic = True End With End With End If Next shpGridCanvasTB Last edited by macropod; 01-01-2017 at 04:35 PM. Reason: Added code tags |
#4
|
||||
|
||||
As I said, though, the code you originally posted worked fine in my testing (i.e. it does change the formats specified) for an existing shape and, with the addition of .SetShapesDefaultProperties, becomes the default for the current document.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
Yes, of course, I understand your testing passed the code, thanks for doing that.
I do not know why it did not work in my environment at more than one machine. Thanks for your time and replies. |
#6
|
||||
|
||||
Have you tried repairing the Office installation (via Windows Control Panel > Programs > Programs & Features > Microsoft Office (version) > Change > Repair)?
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#7
|
|||
|
|||
Oh, no I have not. I will try and let you know, thanks for telling me.
|
#8
|
|||
|
|||
Hi Paul
I ran an office online repair, i.e. reinstallation of office then I have tried change the format of a textbox accessing it with the selection object. It did not work, no change to formating took place. |
#9
|
|||
|
|||
Code for word 2007 please??? Formatting objects inside a canvas
Hi,
I tried this code in word 2007 but it returns error "The item with the specified name wasn’t found." Is there different code that would work in 2007 please? |
#10
|
||||
|
||||
The same macro code in post #1 works in all Word versions from Word 97 to date. Presumably you're referring to the code in post #3, but your document lacks a shape named "MainCanvas".
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#11
|
|||
|
|||
Oh
Thanks for clarifying.
|
Tags |
vba change textbox word |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Loop through controls, make certain controls invisible | MacroWizard | Word VBA | 2 | 11-10-2015 02:36 PM |
How to make Section headers (Header 2) invisible at print time? | inframan | Word | 7 | 08-10-2012 09:39 PM |
How do I make invisible the lines in the table | Snvlsfoal | Word Tables | 1 | 08-11-2011 05:45 AM |
Object set to invisible yet I can still move its (invisible) animation paths?? | seanspotatobusiness | PowerPoint | 0 | 05-23-2011 03:39 AM |
Make text invisible to printer | ilkks | Word | 2 | 05-06-2011 04:26 AM |