VBScript 以文件名作为标题将图像导入 word
VBScript to import images to word with filename as captions
我正在将大量结果图(png 或 jpg 图片)导入到 word 中,需要将其自动化以加快我的工作速度。我已经成功地导入了图像,但无法弄清楚如何使用文件名(或如图所示的硬编码)作为图形文本制作图形标题。
'-------------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-----------------------
我终于设法制作了一个循环遍历所有 PNG-files 的脚本,并在它们之间插入标题和行空格,最后将其保存到一个新的 word 文件中。
' 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
我正在将大量结果图(png 或 jpg 图片)导入到 word 中,需要将其自动化以加快我的工作速度。我已经成功地导入了图像,但无法弄清楚如何使用文件名(或如图所示的硬编码)作为图形文本制作图形标题。
'-------------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-----------------------
我终于设法制作了一个循环遍历所有 PNG-files 的脚本,并在它们之间插入标题和行空格,最后将其保存到一个新的 word 文件中。
' 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