#1
|
|||
|
|||
Insert and Filling Textbox using VBA
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. |
|
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 |