【发布时间】:2019-05-27 18:04:57
【问题描述】:
想“批量”翻译很多word文档。
尝试批量转换为docx,需要添加翻译。
请看下面我使用的代码。
我不知道如何调用 ActiveDocument 上的翻译。
'''VBA
Sub ConvertDocToDocx()
'Updated by ExtendOffice 20181128
Dim xDlg As FileDialog
Dim xFolder As Variant
Dim xFileName As String
Application.ScreenUpdating = False
Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xDlg.Show <> -1 Then Exit Sub
xFolder = xDlg.SelectedItems(1) + "\"
xFileName = Dir(xFolder & "*.doc", vbNormal)
While xFileName <> ""
Documents.Open FileName:=xFolder & xFileName, _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto, XMLTransform:=""
'pseudo code ActiveDocument.MStranslateFromTo('EN','DA')
ActiveDocument.SaveAs xFolder & Replace(xFileName, "doc", "docx"), wdFormatDocumentDefault
ActiveDocument.Close
xFileName = Dir()
Wend
Application.ScreenUpdating = True
End Sub
'''
(在此处找到代码:https://www.extendoffice.com/documents/word/5601-word-batch-convert-doc-to-docx.html#a1)
【问题讨论】:
-
“翻译”是指用不同的语言重写文本。我相信您的意思是“转换”,在这种情况下,这意味着以不同的文件格式保存一个或多个文件。
-
@cybernetic.nomad - 我认为它们的真正意思是“翻译”...
-
@Tim Williams - 你可能是对的,我认为
ActiveDocument.SaveAs xFolder & Replace(xFileName, "doc", "docx"), wdFormatDocumentDefault并且帖子底部提供的链接意味着 OP 正在寻找转换文件。 -
谢谢 - 我谈到翻译成另一种语言。 (将格式转换为 docx 的代码效果很好。) - 我期待我可以在同一个过程中调用翻译。但我找不到任何 VBA 示例。 (我发现了一些 Azure 基础示例,但没有看到真正需要“走出去”已经可以用文字完成的事情)。
-
我想知道这是否可以使用宏来完成——也就是说,我可以简单地记录一个运行翻译的宏——然后在处理 doc/docx 转换时调用该宏? (这个编辑器糟透了!)虽然我不知道是否可以从 VBA 代码调用宏或反之亦然......