Использование 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