Quote:
Originally Posted by SamDsouza
I Did understand the irritating and Frustrating the boilerplate part.
though i could have created the Template and coded but this time i wanted to enjoy the
food out of the boilerplate
With your guidance Shall learn something new all together in different manner
|
Well, if you're going to code the boilerplate text, you might as well do it efficiently. Your code has numerous redundant lines. Try:
Code:
Public Sub msWord_Structure()
Dim wdApp As Object, wdDoc As Object, wdTbl As Object, wdRng As Object, chqNobold As String, StrTxt As String
Dim custNameLen As Long, RefAcNoLen As Long, chqNoLen As Long, MyContactNosLen As Long
Const wdCollapseEnd As Long = 0
Const wdAlignParagraphCenter As Long = 1
Const wdAlignParagraphJustify As Long = 3
chqNobold = txtChqNo.Text
custNameLen = (17 + Len(cmbMyCustName.Text))
RefAcNoLen = (14 + Len(txtRefAcNo.Text))
chqNoLen = (11 + Len(chqNobold))
MyContactNosLen = (11 + Len(txtMyContactNos.Text))
StrTxt = vbCr & "Time " & txtTime.Text & vbCr & vbCr & _
"Customer Name : " & cmbMyCustName.Text & vbCr & vbCr & _
"Account No. " & txtRefAcNo.Text & " Chq No. " & txtChqNo.Text & vbCr & vbCr & _
"Mobile No" & txtMyContactNos.Text & " Tel No." & vbCr & vbCr & _
"Address of Remitter (Mandatory for Non IDBI Bank Customer)___________________________________" & vbCr & vbCr & _
"__________________________________________" & " Email ID ______________________________________________" & vbCr & vbCr & _
vbCr & vbCr & " Incase of NonIDBI Bank Customer Amount of Cash Deposited _____________________________________" & vbCr & vbCr '& " Beneficiary Details :"
On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err Then Set wdApp = CreateObject("Word.Application")
On Error GoTo 0
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add
With wdDoc.Range
.Font.Name = "Tahoma"
.Font.Size = 12
.Paragraphs.SpaceAfter = 0
.ParagraphFormat.Alignment = wdAlignParagraphJustify
.Text = "RTGS/ Request Form" & vbCrLf & vbCrLf & _
Chr(144) & "RTGS " & Chr(144) & "" & _
vbCrLf & vbCrLf & "For RTGS" & vbCr
With .Paragraphs(1).Range
.Font.Size = 16
.Font.Underline = True
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
.Paragraphs.Last.Previous.Range.Font.Underline = True
Set wdTbl = .Tables.Add(.Characters.Last, 4, 2)
With wdTbl
.Columns(1).Width = 300
.Columns(2).Width = 130
.Borders.Enable = True
.Rows.HorizontalPosition = 5
.Rows.VerticalPosition = 10
With .Cell(1, 1)
.Merge wdTbl.Cell(1, 2)
.Range.Text = "Maximum Limit For Transaction"
.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
With .Cell(2, 1).Range
.Text = "IDBI Bank Customer"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With
With .Cell(2, 2).Range
.Text = "No Limit"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With
With .Cell(3, 1).Range
.Text = "Non IDBI Bank Customer & Indo Nepal Remittance"
.ParagraphFormat.Alignment = 3
End With
With .Cell(3, 2).Range
.Text = "Up to INR 50,000/-"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With
With .Cell(4, 1).Range
.Text = "Purpose of Remittance to Nepal - Family Maintenance only"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With
With .Cell(4, 2).Range
.Text = "Yes / No"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With
End With
.InsertAfter StrTxt
Set wdRng = .Paragraphs(18).Range
With wdRng
.Start = .Start + 5
.End = .End - 1
.Font.Bold = True
End With
End With
End Sub
Quote:
Originally Posted by SamDsouza
After Para 14 somehow it does not detect as Paragraph. the issue lies here.
…
By the way i checked "Time" was at paragraphs 17 with the following thread VBA Express : Word - Get Line and Paragraph Number
And with above only i put the paragraph as 17 as per coding in #1 but was unsuccessfull
|
Without wanting to place too fine a point on it, your code was trying to modify the paragraph before you'd created it (i.e. you hadn't written 'txtword' to the document)...