保存文档时,使用Word-VBA自动保存为.html

时间:2014-07-21 17:58:00

标签: vba ms-word word-vba msdn

我在完全离线设施工作;它有一个内部网站点,并且非常局限于可用的程序(MS Word是唯一应用程序可用)。

我需要能够打开Microsoft Word文档,对其进行编辑,然后在保存文档时保存文件,然后将其保存为.html格式。

详细说明,我在一个军事设施工作,该设施有一个我们无法安装任何东西的网络。在这个网络上是一系列计算机。在这些计算机上我们保留一个日志。我们希望能够将此日志显示给想要查看它的任何人。日志采用.doc格式。我希望有人打开log.doc然后保存它。保存后,它将保存.html文件。该文件将在网络上显示给任何人以查看它。

2 个答案:

答案 0 :(得分:3)

这是Word 2010的宏录制器在将文件另存为MHT(单文件html)时生成的简化版本。

ActiveDocument.SaveAs2 FileName:="c:\temp\test.mht", FileFormat:= _
    wdFormatWebArchive

根据需要进行调整。

我不确定Word 2013是否支持再保存为HTML。并非所有的办公应用程序都可以。

答案 1 :(得分:2)

以下内容略微改编自微软的开发者网络。将其另存为客户端使用的MS Word副本中的宏。这个宏将:

将文档另存为.doc(x)文件,然后另存为.HTML文件。

Sub AutoOpen()
    Saver
End Sub

Sub Saver()
    ActiveDocument.Save
        Document_Save
End Sub

Sub Document_Save()
    Dim strDocName As String
    Dim intPos As Integer

    'Find position of extension in filename
    strDocName = ActiveDocument.Name
    intPos = InStrRev(strDocName, ".")

    If intPos = 0 Then

        'If the document has not yet been saved
        'Ask the user to provide a filename
        strDocName = InputBox("Please enter the name " & _
        "of your document.")
    Else

        'Strip off extension and add ".html" extension
        strDocName = Left(strDocName, intPos - 1)
        strDocName = strDocName & ".html"

    End If

    'Save file with new extension
    ActiveDocument.SaveAs FileName:=strDocName, _
    FileFormat:=wdFormatHTML

End Sub