VBScript для импорта изображений в слово с именем файла в качестве подписи - PullRequest
0 голосов
/ 21 октября 2019

Я импортирую много графиков результатов (png или jpg impages) в слово, и мне нужно автоматизировать это, чтобы ускорить мою работу. Мне удалось импортировать изображения, но я не могу понять, как сделать подпись к рисунку с именем файла (или жесткими кодами, как показано) в виде текста рисунка.

'-------------CODE-----------------------------

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection

Set objShape = objDoc.Shapes

objSelection.InlineShapes.AddPicture ("C:\Plots\Plot1.PNG")
objShape.InsertCaption Label:="Figure", _  Title:=": Plot1", Position:=wdCaptionPositionBelow
  objSelection.insertbreak

objSelection.InlineShapes.AddPicture ("C:\Plots\Plot2.PNG")
objShape.InsertCaption Label:="Figure", _  Title:=": Plot2", Position:=wdCaptionPositionBelow
  objSelection.insertbreak

objSelection.InlineShapes.AddPicture ("C:\Plots\Plot3.PNG")
objShape.InsertCaption Label:="Figure", _  Title:=": Plot3", Position:=wdCaptionPositionBelow
  objSelection.insertbreak

objSelection.InlineShapes.AddPicture ("C:\Plots\Plot4.PNG")
objShape.InsertCaption Label:="Figure", _  Title:=": Plot4", Position:=wdCaptionPositionBelow
  objSelection.insertbreak

'----------END-OF-CODE-----------------------

1 Ответ

1 голос
/ 23 октября 2019

Мне наконец-то удалось создать скрипт, который перебирает все PNG-файлы и импортирует их с надписью и пробелами между ними, и, наконец, сохраняет его в новом файле слов.

' Script to read PNG files into a word document
' the PNG files and script need to be in the same folder

Set objWord = CreateObject("Word.Application")
objWord.Visible = False
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection

' Folder to process
strFolder = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)

Set objFSO = CreateObject("Scripting.FileSystemObject")

' Access the folder to process
Set objFolder = objFSO.GetFolder(strFolder)

For Each objFile In objFolder.Files

    ' Only import PNG files
    If LCase(objFSO.GetExtensionName(objFile)) = LCase("PNG") Then

       objSelection.InlineShapes.AddPicture (objFile.Path)
       objSelection.TypeText (vbCrLf)   
       objselection.InsertCaption "Figure", vbTab & objFSO.GetBaseName(objFile) , "", wdCaptionPositionBelow
       objSelection.TypeText (vbCrLf)   
       objSelection.TypeText (vbCrLf)   

    Else
    '  Wscript.Echo "No PNG files in """ & objFile.Path & """"
    End If

Next

DOCXFilePath = objFSO.BuildPath(objFolder, "Plots.docx")
objDoc.SaveAs(DOCXFilePath)
objWord.Quit
...