Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
V6s5, Word2K, Create Letter (not mail merge) from given
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Divers
Thread ID:
00822541
Message ID:
00823440
Vues:
18
You are welcome.

>Thanks. I will lookup Word Visual Basic Help and I am trying to search for word constants in the downloads. I will also try the macro recording and hope I can make head or tail of the VBA script.
>
>Thanks for all your help, trouble you if I get struck.
>
>>Do not feel guilty: we all are in the very same boat in the MS sea of uncertaincy. For instance, trying to reproduce the example (I gave you) with Word97 I was surprised to learn, that
>>oWOrd.Selection.Range.Font.color=RGB(0,255,0) does not work there. Instead colorindex property should be used.
>>How did I find it? BAsically there are two ways:
>>1. You can record a macro in Word and then analyze the code and translate it to VFP.
>>2. In VFP7 and above you can type from command window:
>>?oWOrd.Selection.Range.Font. to see available properties, and if you type
>>?oWOrd.Selection.Range.Font.colorindex= , then you see the available values of this property.
>>
>>And all Word constants you can find in the download section here, I believe.
>>And the Word Object hierarchy you can find in the MS WOrd Visual Basic Help:
>>from Word, ALT+F11->Help.
>>
>>So now to your question.
>>To align the text you may use oWord.Selection.ParagraphFormat.Alignment property.
>>If you have two text pieces on the very same line, then probably you could format this particular line to two-columns and align them differently, or convert text to table and do alignment as needed. Try to record a macro to see what is better for you.
>>
>>
>>>This was a great example and I really appreciate your help. Now i am stuck at the following:
>>>
>>>
	WITH .activedocument.content
>>>		.insertafter("Ref.: " + lcrefno)
>>>	ENDWITH
>>>
>>>	.SELECTION.EndKey(wdStory)
>>>	
>>>	WITH .SELECTION.RANGE
>>>		.style = 0
>>>		.style = 1
>>>		.style = 2
>>>		.style = 3
>>>		.style = 4
>>>		.style = 5
>>>		.style = 6
>>>		.style = 7
>>>		.style = 8
>>>		.style = 9
>>>		.style = 10
>>>	ENDWITH
>>>
>>>Which style will work, none of the above do. I needed right aligning the text. Also what if there is 2 pieces of text on a line one left and the other right aligned.
>>>
>>>Is there any documentation to refer where I can find the properties. I feel guilty to keep on troubling you so, even after you have given me such a fine example.
>>>
>>>Please advise.
>>>
>>>>Please follow this example. It should cover your both latest questions
>>>>
>>>>>
>>>>crlf = CHR(13)+CHR(10)
>>>>
>>>>wdStory=6
>>>>wdExtend =1
>>>>wdSectionBreakNextPage=2
>>>>wdHeaderFooterPrimary=1
>>>>Wdheaderfooterfirstpage=2
>>>>
>>>>oWord = CREATEOBJECT("Word.Application")
>>>>
>>>>with oWord
>>>>	.documents.ADD()
>>>>	.visible=.t.
>>>>
>>>>	with .activedocument.content
>>>>		.insertafter("Test procedure:"+crlf+crlf)
>>>>	endwith
>>>>	
>>>>	.Selection.EndKey(wdStory)
>>>>	
>>>>	with .activedocument.content
>>>>		.insertafter("Text Line1 Font Bold Red Courier New " +crlf)
>>>>	endwith	
>>>>    .Selection.EndKey(wdStory, wdExtend)
>>>>	WITH .Selection.Range.Font
>>>>		.NAME = "Courier New"
>>>>		.bold = .T.	
>>>>		.color=RGB(255,0,0)
>>>>	ENDWITH
>>>>	
>>>>    .Selection.EndKey(wdStory)
>>>>
>>>>* start another section, needed only to use different footer-headers in the future
>>>>	.Selection.InsertBreak(wdSectionBreakNextPage)
>>>>
>>>>    .Selection.EndKey(wdStory)
>>>>
>>>>	with .activedocument.content
>>>>		.insertafter("Text Line2 Font Green Times New Roman " +crlf)
>>>>	endwith	
>>>>    .Selection.EndKey(wdStory, wdExtend)
>>>>	WITH .Selection.Range.Font
>>>>		.NAME = "Times New Roman"
>>>>		.bold = .f.	
>>>>		.color=RGB(0,255,0)
>>>>	ENDWITH
>>>>    .Selection.EndKey(wdStory)
>>>>
>>>>    .Selection.EndKey(wdStory)
>>>>
>>>>* HEADER FOOTER
>>>>	.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = .f.
>>>>
>>>>	with .ActiveDocument.Sections(1)
>>>>		.Headers(wdHeaderFooterPrimary).Range.Text = "1Header text"
>>>>		.Footers(wdHeaderFooterPrimary).Range.Text = "1Footer text"
>>>>	endwith
>>>>
>>>>	with .ActiveDocument.Sections(2)
>>>>		.Headers(wdHeaderFooterPrimary).LinkToPrevious = .f.
>>>>		.Footers(wdHeaderFooterPrimary).LinkToPrevious = .f.
>>>>		.Headers(wdHeaderFooterPrimary).Range.Text = "2Header text"
>>>>		.Footers(wdHeaderFooterPrimary).Range.Text = "2Footer text"
>>>>		.Footers(wdHeaderFooterPrimary).Range.Font.Color=RGB(100,200,50)
>>>>
>>>>	endwith
>>>>
>>>>	.activedocument.SAVEAS("c:\myword.doc")
>>>>	.activedocument.CLOSE
>>>>endwith
>>>>
>>>>oWord.QUIT()
>>>>oWord=.null.
>>>>release oWord
>>>>>
>>>>
>>>>>Hi Yuri. Thanks for your help.
>>>>>
>>>>>I have a yes and no kind of situation. The following line gives an error:
>>>>>
>>>>>>lnstart=.Range.Start
>>>>>
>>>>>Message: Member RANGE does not evaluate to an object.
>>>>>
>>>>>I am able to use the following line:
>>>>>
>>>>>.insertafter("this is the text")
>>>>>
>>>>>Please advise. I am using Word2K for this. What am I doing wrong.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform