Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Visual Basic ( VB ) (http://www.go4expert.com/forums/visual-basic/)
-   -   vbscript to create word file and format it (http://www.go4expert.com/forums/vbscript-create-word-file-format-t14994/)

stable 6Nov2008 10:30

vbscript to create word file and format it
 
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

SaswatPadhi 9May2009 18:06

Re: vbscript to create word file and format it
 
Really nice question, so I decided to post the solution though it's late !!! :pleased:

Took me too long to figure out ! :p

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


stable 11May2009 10:27

Re: vbscript to create word file and format it
 
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 11May2009 10:47

Re: vbscript to create word file and format it
 
Quote:

Originally Posted by stable (Post 47569)
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 ! :smile:


All times are GMT +5.5. The time now is 15:35.