![]() |
|
#1
|
|||
|
|||
|
I assume this is straight forward but it isn't really happening for me. I want to:
Add a Text Box to the Right hand Side and have written vertically the word MEMO font size 48 Arial in grey. I have been working from a few things online but to no avail. I am running the code from access in a newly created word document. It always comes up specified value is out of Range and it's starting to get repetitive. Any help is appreciated. P.S I realise I haent added text yet and the box is too small but I haven't gotten that far yet... Code:
Sub Textbox()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdShp As Word.Shape
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
.ScreenUpdating = False
Set wdDoc = .Documents.Add
With wdDoc
Set wdShp = .Shapes.AddTextbox(Orientation:=msoTextOrientationVertical, Left:=10, Top:=10, Width:=10, Height:=10)
End With
.ScreenUpdating = True
End With
Set wdDoc = Nothing: Set wdApp = Nothing: Set wdShp = Nothing
End Sub
|
|
#2
|
||||
|
||||
|
Maybe something like:
Code:
Sub Textbox()
Dim wdApp As Object
Dim wdDoc As Object
Dim wdShp As Object
Dim oRng As Object
On Error Resume Next
Set wdApp = GetObject(, "Word.Application") 'It is always faster to get the running Word if available
If Err Then
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0
With wdApp
.Visible = True
.ScreenUpdating = False
Set wdDoc = wdApp.Documents.Add
Set wdShp = wdDoc.Shapes.AddTextbox(Orientation:=msoTextOrientationUpward, _
Left:=10, _
Top:=10, _
Width:=wdApp.CentimetersToPoints(1.25), _
Height:=wdApp.CentimetersToPoints(10))
With wdShp
Set oRng = .TextFrame.TextRange
With oRng
.Text = "This is the text box text"
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Italic = True
.ParagraphFormat.Alignment = 1 'Centred
End With
End With
.ScreenUpdating = True
End With
lbl_exit:
Set wdDoc = Nothing: Set wdApp = Nothing: Set wdShp = Nothing
Exit Sub
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
|
|||
|
|||
|
The following runs fine when run from within Word. What line of your code is throwing the error?
Code:
Sub Textbox()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdShp As Word.Shape
'Set wdApp = CreateObject("Word.Application")
With Application
.Visible = True
.ScreenUpdating = False
Set wdDoc = .Documents.Add
Set wdShp = wdDoc.Shapes.AddTextbox(Orientation:=msoTextOrientationVertical, Left:=10, Top:=10, Width:=70, Height:=200)
With wdShp.TextFrame
.TextRange = "MEMO"
.TextRange.Font.Name = "Arial"
.TextRange.Font.Size = "48"
End With
.ScreenUpdating = True
End With
Set wdDoc = Nothing: Set wdShp = Nothing
End Sub
|
|
#4
|
|||
|
|||
|
It seems like it doesn't like the AddTextbox Command it keeps coming up with following Error Run-time eror '-2147024809(80070057) The Specified value is out of range. I've copy and pasted the vba into a macro in word and it runs like a charm. I believe it is something to do with running the addTextbox from Access that is flipping it out.
If you have access I assume you'll get the same error. Not sure if I have to set the variable as something other than a "as Word.Shape" PS Thanks Graham for the tip on running already open word application will try it out!! |
|
#5
|
|||
|
|||
|
I would assume you hare using early binding and ave a reference to the Word Object module set in your project. I used late binding as shown and it worked without issue from Access 2016:
Code:
Sub Textbox()
Dim wdApp As Object
Dim wdDoc As Object
Dim wdShp As Object
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
.ScreenUpdating = False
Set wdDoc = .Documents.Add
With wdDoc
Set wdShp = .Shapes.AddTextbox(Orientation:=5, Left:=10, Top:=10, Width:=10, Height:=10)
End With
.ScreenUpdating = True
End With
Set wdDoc = Nothing: Set wdApp = Nothing: Set wdShp = Nothing
End Sub
|
|
#6
|
|||
|
|||
|
Legendary. It was the text direction command it was tripping on. Once replaced with msoTextDirection with a numerical value as you did it works well. Definitely would not have worked that one out on my own. It seems to run both as a Object and Word.Shape with no issues.
Thanks Greg. Appreciate it. |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Restrict Editing function disable insert textbox function
|
IanM_01 | Word | 5 | 11-21-2015 02:29 AM |
| Insert superscript into a textbox | Deltaj | Word VBA | 3 | 11-30-2014 04:23 PM |
| insert text in freeform graphic (make it a textbox) | fzr | Word | 2 | 09-03-2014 05:54 AM |
Display result in textbox based on the input of another textbox
|
scarymovie | Word VBA | 5 | 05-16-2012 07:05 PM |
| How to insert a hyperlink in activex textbox | Joe Patrick | Word VBA | 1 | 10-03-2011 06:03 AM |