![]() |
|
|||||||
|
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
Hi Guys
As this is my First post for VBA for word Just wanted to have syntax for inserting blank line after a line/or paragraph typed and also to insert a blank line before table is inserted and after line typed or paragraph Code:
Private Sub InsertingBlankLine()
Dim objWord As Word.Application
Dim txtword As String, sh As Worksheet
Dim objDoc As Document
Dim objRange As Range
Dim objTable As Table
Dim intRows As Integer
Dim intCols As Integer
txtWord = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg"
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
objWord.ActiveDocument.Content.FormattedText.Text = txtWord
Set objRange = objDoc.Range
Set objRange = objDoc.Content
objRange.Collapse Direction:=wdCollapseEnd
'How to insert blank line here
intRows = 8: intCols = 5
objDoc.Tables.Add objRange, intRows, intCols
Set objTable = objDoc.Tables(1)
objTable.Borders.Enable = True
Set objWord = Nothing
End Sub
SamD |
|
#2
|
||||
|
||||
|
Your code can be a lot simpler. If you are running the code from Word, there is no need to create the application.
You could use Range.InsertParagraphAfter but it is just as easy to include a paragraph mark with the text you are inserting. Code:
Private Sub InsertingBlankLine()
Dim objWord As Word.Application
Dim txtword As String
Dim objDoc As Document
Dim objRange As Range
Dim objTable As Table
Dim intRows As Integer
Dim intCols As Integer
txtWord = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg" & vbCr
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add
objDoc.Range.Text = txtWord
Set objRange = objDoc.Range
objRange.Collapse Direction:=wdCollapseEnd
intRows = 8: intCols = 5
Set objTable = objDoc.Tables.Add(objRange, intRows, intCols)
objTable.Borders.Enable = True
End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
#3
|
||||
|
||||
|
I guess from the reference to 'sh' that you are running this code from Excel, in which case
Code:
Private Sub InsertingBlankLine()
Dim objWord As Object
Dim txtword As String, sh As Worksheet
Dim objDoc As Object
Dim objRange As Object
Dim objTable As Object
Dim intRows As Integer
Dim intCols As Integer
txtword = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg"
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objRange = objDoc.Range
With objRange
.Text = txtword & vbCr 'add the paragraph break at the end of the text string
.Collapse Direction:=0
End With
intRows = 8: intCols = 5
Set objTable = objDoc.Tables.Add(objRange, intRows, intCols)
objTable.Borders.Enable = True
Set objWord = Nothing
Set objDoc = Nothing
Set objRange = Nothing
Set objTable = 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 |
|
#4
|
|||
|
|||
|
Alternatively:
Code:
Private Sub InsertingBlankLine()
Dim oWord As Word.Application
Dim oDoc As Document
Dim oRng As Range
Dim oTbl As Table
Set oWord = CreateObject("Word.Application")
oWord.Visible = True
Set oDoc = oWord.Documents.Add
Set oTbl = oDoc.Tables.Add(oDoc.Range, 8, 5)
Set oRng = oTbl.Range
oTbl.Borders.Enable = True
oRng.Collapse wdCollapseStart
oRng.InsertBreak Type:=wdColumnBreak
oRng.Text = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg"
End Sub
|
|
#5
|
|||
|
|||
|
Thanks Andrew Lockton (Guessed) . You realy made me my first .Docm file with your coding. Indeed it strated off with VBA word
the begining was perfect Thanks to you Gmayor Yes i started from Excel. It is just what i wanted but then i thought i could move on but got stuck when i wanted to insert again new line after the table As this got me more intrested added and modified with your code in RED Code:
Private Sub InsertingBlankLine()
Dim objWord As Object
Dim txtword As String, sh As Worksheet
Dim objDoc As Object
Dim objRange As Object
Dim objTable As Object
Dim intRows As Integer
Dim intCols As Integer
txtword = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg"
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objRange = objDoc.Range
With objRange
.Text = txtword & vbCr 'add the paragraph break at the end of the text string
.Collapse Direction:=0
End With
intRows = 8: intCols = 5
Set objTable = objDoc.Tables.Add(objRange, intRows, intCols)
'''''''objTable.Borders.Enable = True
With objTable
.Borders.Enable = True
.Cell(1, 1).Range.Text = "row 1"
.Cell(1, 1).Range.Bold = True
.Cell(2, 1).Range.Text = "row 2"
.Cell(3, 1).Range.Text = "row 3"
.Cell(4, 1).Range.Text = "row 4"
.Cell(5, 1).Range.Text = "row 5"
.Cell(6, 1).Range.Text = "row 6"
.Cell(7, 1).Range.Text = "row 7"
.Cell(8, 1).Range.Text = "row 8"
.Range.Font.Name = "Tahoma"
.Range.Font.Size = 15
End With
Set objTable = Nothing
'''''Here also i would like blank line and start
txtword = "Paragraph / Line after table"
With objRange
.Text = txtword & vbCr 'add the paragraph break at the end of the text string
.Collapse Direction:=0
End With
'''''The above range started in the table of 1st Row
Set objWord = Nothing
Set objDoc = Nothing
Set objRange = Nothing
'''''' Set objTable = Nothing
End Sub
at Set oRng = oTbl.Range Glad to be here on this forum Thank you guys SamD |
|
#6
|
|||
|
|||
|
Sam,
Yes. I wrote the code from Word. Those declaration should be: Dim oRng as Word.Range Dim oTbl as Word.Table. Best Regards, Greg Maxey May God have mercy on my enemies, because I won't. ~ General George S. Patton |
|
#7
|
||||
|
||||
|
To add a line after the table, you need to reset the range e.g.
Code:
Private Sub InsertingBlankLine()
Dim objWord As Object
Dim txtword As String, sh As Worksheet
Dim objDoc As Object
Dim objRange As Object
Dim objTable As Object
Dim intRows As Integer
Dim intCols As Integer
Dim oCell As Object
txtword = "fsdhfkhfkdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg"
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objRange = objDoc.Range
With objRange
.Text = txtword & vbCr 'add the paragraph break at the end of the text string
.collapse Direction:=0
End With
intRows = 8: intCols = 5
Set objTable = objDoc.Tables.Add(objRange, intRows, intCols)
'''''''objTable.Borders.Enable = True
With objTable
.Borders.Enable = True
Set oCell = .Cell(1, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 1"
oCell.Bold = True
Set oCell = .Cell(2, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 2"
Set oCell = .Cell(3, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 3"
Set oCell = .Cell(4, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 4"
Set oCell = .Cell(5, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 5"
Set oCell = .Cell(6, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 6"
Set oCell = .Cell(7, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 7"
Set oCell = .Cell(8, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 8"
.Range.Font.Name = "Tahoma"
.Range.Font.Size = 15
End With
'''''Here also i would like blank line and start
txtword = "Paragraph / Line after table"
Set objRange = objDoc.Range
With objRange
.collapse Direction:=0
.Text = txtword & vbCr 'add the paragraph break at the end of the text string
End With
'''''The above range started in the table of 1st Row
Set objWord = Nothing
Set objDoc = Nothing
Set objRange = Nothing
Set objTable = Nothing
Set oCell = 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 |
|
#8
|
|||
|
|||
|
How about:
Code:
Private Sub InsertingBlankLine()
Dim oWord As Object
Dim oDoc As Object
Dim oCell As Object
On Error Resume Next
Set oWord = GetObject(, "Word.Application")
If Err Then
Set oWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set oDoc = oWord.Documents.Add
oWord.Visible = True
With oDoc
.Content = "kdhfdskfhd fkdshfdkfhdskfhdsfd fdshgfdjdsjfg" & vbCr & vbCr & "Paragraph / Line after table"
.Tables.Add .Paragraphs(2).Range, 8, 5
With .Tables(1)
.Borders.Enable = True
Set oCell = .Cell(1, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 1"
oCell.Bold = True
Set oCell = .Cell(2, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 2"
Set oCell = .Cell(3, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 3"
Set oCell = .Cell(4, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 4"
Set oCell = .Cell(5, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 5"
Set oCell = .Cell(6, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 6"
Set oCell = .Cell(7, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 7"
Set oCell = .Cell(8, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "row 8"
.Range.Font.Name = "Tahoma"
.Range.Font.Size = 15
End With
End With
Set oWord = Nothing
Set oDoc = Nothing
Set oCell = Nothing
End Sub
|
|
#9
|
|||
|
|||
|
Thank you so much GMayor and GMaxey for all your help and guidance.
I am posting all together new thread as again i am stuck in incorporating new table with different Placing and positioning new Table. and bit confussed Thanks SamD |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Sparse words in line when inserting a link
|
titanic | Word | 4 | 11-12-2018 01:50 PM |
Inserting code line in Word Module
|
mihnea96 | Excel Programming | 2 | 08-15-2017 04:57 AM |
Word inserting line breaks / wrapping text
|
Girloutside | Word | 1 | 08-10-2015 12:45 PM |
inserting wordwrap table causes paragraph break in text
|
sodiumkpump | Word Tables | 1 | 08-05-2015 06:36 PM |
Inserting key strokes with a macro line
|
ACA | Word VBA | 4 | 12-03-2012 04:40 AM |