vbscript to create word file and format it

stable's Avatar, Join Date: Nov 2008
Newbie Member
Hello,
I'm not sure that this is the correct forum for vbscripts. I am very new to vbscripting.

I have searched the internet and combined snippets of code to process image files in a folder. I want to create a new Word document of all the image files and insert the image filename under the image (minus the file type extension).

It partially works however the images are pasted on top of each other and the text is underneath the images! I need help on how to add new lines to the document so that the images appear under each other. Do I need to "go to new page" too?

My code is below:
Code:
Set fsoFolder = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
Set objShape = objDoc.Shapes

objSelection.Font.Name = "Arial"
objSelection.Font.Size = "12"
Set folder = fsoFolder.GetFolder("C:\PKW_JPG")
Set files = folder.Files
for each objFile in files
	filepath = fsoFolder.GetAbsolutePathName(objFile)
	sName = objFile.Name
	iLen= len(sName) -4
	sNameNew = left(sName, iLen)
'	msgbox sName
	objShape.AddPicture(filepath)
	objSelection.TypeParagraph()

	objSelection.TypeText sNameNew
	objSelection.TypeParagraph()
	objSelection.TypeParagraph()
Next
set files = nothing
set folder = nothing
set fsoFolder = nothing
Any help would be much appreciated.

cheers
stable

Last edited by shabbir; 6Nov2008 at 10:44.. Reason: Code block
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
Really nice question, so I decided to post the solution though it's late !!!

Took me too long to figure out !

The thing is, when you use objDoc.Shapes, the image ought to stay above everything else (may be text or image). You are not inserting shapes into any proper place in the doc, you are just adding it to the collection of shapes.
What you should use here is : objSelection.InlineShapes.

The correct script should be :
Code: vb
Set fsoFolder = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
Set objShape = objSelection.InlineShapes

objSelection.Font.Name = "Arial"
objSelection.Font.Size = "12"
Set folder = fsoFolder.GetFolder("C:\Documents and Settings\Rajesh\Desktop\Ricky files\TestPix")
Set files = folder.Files
for each objFile in files
    filepath = fsoFolder.GetAbsolutePathName(objFile)
    sName = objFile.Name
    iLen= len(sName) -4
    sNameNew = left(sName, iLen)
'   msgbox sName
    objShape.AddPicture(filepath)
    objSelection.TypeParagraph()
    objSelection.TypeText sNameNew
    objSelection.TypeParagraph()
    objSelection.TypeParagraph()

Next
set files = nothing
set folder = nothing
set fsoFolder = nothing

Last edited by SaswatPadhi; 9May2009 at 18:07.. Reason: Highlighted "Late Reply"
stable's Avatar, Join Date: Nov 2008
Newbie Member
Hi SaswatPadhi,

Thanks very much for publishing your solution. I will definitely use it next time we need to create a similar document and hope others will be able to make use of your solution.

Once again thanks for you help.

Cheers
Stable
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
Quote:
Originally Posted by stable View Post
Hi SaswatPadhi,

Thanks very much for publishing your solution. I will definitely use it next time we need to create a similar document and hope others will be able to make use of your solution.

Once again thanks for you help.

Cheers
Stable
You are welcome !
Glad to know that you liked it !