image - VBScript 以文件名作为标题将图像导入单词
问题描述
我正在将大量结果图(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 文件的脚本,并将它们与标题和行间距一起导入,最后将其保存到一个新的 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
推荐阅读
- java - 这个 ObjectWeb 错误是什么意思:“不支持的类文件主要版本 56”,我该如何解决?
- django - 关于基本用户模型 Django 的查询集问题
- jdbc - 与 Kerberos 的 JDBC 连接启用了 Apache phoenix
- javascript - 在 Sequelize 中将带有外键的表列添加到我的模型中
- ruby - 为什么打印输出后会有一个额外的空行?
- servlets - 使用 mockito 进行 JUnit 测试
- ruby - 在 Mac OS 上安装 rbenv 后,如何解决消息“没有这样的文件或目录”?
- excel - 为什么excel vba代码无法打开?
- blueprism - Blue Prism Application Modeller 最佳实践
- java - 获取应用关闭的时间。如何?