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
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: 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
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