Использование Word-VBA для автоматического сохранения в формате.html при сохранении документа

Я работаю в полностью автономном режиме; у него есть сайт в интрасети, и он ОЧЕНЬ ограничен доступными программами (MS Word - единственное доступное приложение).

Мне нужно иметь возможность открывать документ Microsoft Word, редактировать его, а затем, когда вы сохраняете документ, он сохраняет файл, а затем сохраняет его также в формате.html.

Чтобы уточнить, я работаю в военном Объекте, у которого есть сеть, у нас не может быть ничего установлено. В этой сети есть серия компьютеров. На этих компьютерах мы ведем журнал. Мы хотим, чтобы этот журнал отображался всем, кто хочет его видеть. Журнал в формате.doc. Я хочу, чтобы кто-то открыл log.doc и сохранил его. После сохранения он сохранит файл.html. Этот файл будет отображаться для всех в сети, чтобы увидеть его.

2 ответа

Это упрощенная версия записи макросов Word 2010 при сохранении файла в формате MHT (однофайловый html).

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

Адаптируйте по мере необходимости.

Я не уверен, поддерживает ли Word 2013 сохранение в формате HTML. Не все офисные приложения делают.

Следующее немного адаптировано из Microsoft Developer Network. Сохраните это как макрос в копии 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
Другие вопросы по тегам