Text Boxes


ActiveDocument.Shapes.AddTextbox(Type:=msoTextOrientation.msoTextOrientationUpward , _ 
                               Left:=10, Top:=10, Width:=10, Height:=10, Anchor:=False)


Reading Writing Text

When you read text from a textbox additional characters will be included in your text string.

Dim stext As String 
   stext = ActiveDocument.Shapes(1).TextFrame.TextRange.Text
   Debug.Print stext
   For ichar = 1 to Len(stext) Step 1
      Debug.Print Asc(Mid(stext, ichar,1)) & " - " & Mid(stext,ichar,1)
   Next ichar

Any spaces are represented by Chr(32)
At the end of the text there will also be a Chr(13)
To remove the carriage return at the end of the string you need to include the following:

stext = Repace(stext, Chr(13),"") 

Text boxes cannot have the same name if you are renaming using VBA
However testboxes with the same name can be inserted by inserting the same building block multiple times


The following line of code does not include any shapes in the headers or footers

ActiveDocument.Shapes 

Public Sub Page_GetTextboxPosition() 
Dim oShape As Word.Shape
   On Error GoTo ErrorHandler
   Set oShape = ActiveDocument.Shapes(1)
   Debug.Print "Left - " & oShape.Left
   Debug.Print "Top - " & oShape.Top
   Debug.Print "Width - " & oShape.Width
   Debug.Print "Height - " & oShape.Height
End Sub


Adds a text box to a drawing canvas.

Dim shpCanvas As Shape 
'Create a new document and add a drawing canvas
    Set shpCanvas = ActiveDocument.Shapes.AddCanvas _
    (Left:=10, Top:=10, Width:=150, Height:=200)
    shpCanvas.CanvasItems.AddTextbox _
         Orientation:=msoTextOrientationHorizontal, _
         Left:=40.45, Top:=129.3, Width:=129.5, Height:=205.2

Add the Title text box

    Set oShape = ActiveDocument.Shapes.AddTextbox _ 
         (Orientation:=msoTextOrientationHorizontal, _
         Left:=105, _
         Top:=213, _
         Width:=Application.CentimetersToPoints(13.55), _
         Height:=Application.CentimetersToPoints(1.74))

   oShape.Line.Weight = 1 
   With oShape.TextFrame.TextRange
      .Text = "Document Title"
      .ParagraphFormat.Alignment = wdAlignParagraphCenter
      .ParagraphFormat.Style = "Title"
   End With


Sub ChangeAndUpdate() 
   Dim objRange As Range
   Set objRange = ActiveDocument.Bookmarks("InsideTextBox").Range
   objRange.Text = "Saturday"
   ActiveDocument.Bookmarks.Add "InsideTextBox", objRange

'ActiveDocument.Shapes(1).Name = "TextBox_1"
   ActiveDocument.Shapes.Item("TextBox_Update").TextFrame.TextRange.Fields.Update
End Sub



© 2024 Better Solutions Limited. All Rights Reserved. © 2024 Better Solutions Limited TopPrevNext