You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB6实现Word2007的docx转带附属文件夹HTML遇格式错误

问题:VB6中Word转HTML仅修改扩展名未实际转换格式

我想把Word 2007的docx文件保存为带有附属文件子文件夹的HTML文件。为了了解操作方法,我在Word 2007中录制了宏,但宏仅记录了相关设置,未包含保存操作:

Sub Makro3()

    With ActiveDocument.WebOptions
        .RelyOnCSS = True
        .OptimizeForBrowser = True
        .OrganizeInFolder = True
        .UseLongFileNames = True
        .RelyOnVML = False
        .AllowPNG = True
        .ScreenSize = msoScreenSize800x600
        .PixelsPerInch = 96
        .Encoding = 65001
    End With
    With Application.DefaultWebOptions
        .UpdateLinksOnSave = True
        .CheckIfOfficeIsHTMLEditor = False
        .CheckIfWordIsDefaultHTMLEditor = False
        .AlwaysSaveInDefaultEncoding = False
        .SaveNewWebPagesAsWebArchives = True
    End With
End Sub

我在VB6中改写了代码,替换了VB6不支持的枚举并添加了SaveAs语句,但保存后的文件仅扩展名改为.html,实际仍是docx格式。请问哪里操作错误?

Public Sub pCreateHtml(ByVal uPath As String)

    Dim oWord As New Word.Application
    Set oWord = New Word.Application

    Dim oDoc As Word.Document
    Set oDoc = oWord.Documents.Open(uPath, True, True)
    
    With oDoc.WebOptions
        .RelyOnCSS = True
        .OptimizeForBrowser = True
        .OrganizeInFolder = True
        .UseLongFileNames = True
        .RelyOnVML = False
        .AllowPNG = True
        .ScreenSize = 3 'msoScreenSize800x600
        .PixelsPerInch = 96
        .encoding = 65001
    End With
    With oDoc.Application.DefaultWebOptions
        .UpdateLinksOnSave = True
        .CheckIfOfficeIsHTMLEditor = False
        .CheckIfWordIsDefaultHTMLEditor = False
        .AlwaysSaveInDefaultEncoding = False
        .SaveNewWebPagesAsWebArchives = True
    End With
    
    oDoc.SaveAs Replace(uPath, ".docx", ".html")
    
    oDoc.Saved = True
    oDoc.Close
    
    oWord.Quit
    Set oWord = Nothing
    
End Sub

问题原因及解决方法

核心错误

调用SaveAs时未指定文件格式参数,Word默认会按原文档格式(docx)保存,仅修改文件名扩展名,内容并未转换为HTML。

解决步骤

  1. 添加文件格式参数:在SaveAs方法中指定HTML格式对应的数值(Word 2007中wdFormatHTML的枚举值为8)。
  2. 调整Web存档设置:原代码中SaveNewWebPagesAsWebArchives = True会生成单文件Web存档(.mht),而非带附属文件夹的普通HTML,需改为False才能生成带资源文件夹的HTML文件。

修改后的完整代码

Public Sub pCreateHtml(ByVal uPath As String)

    Dim oWord As New Word.Application
    Set oWord = New Word.Application

    Dim oDoc As Word.Document
    Set oDoc = oWord.Documents.Open(uPath, True, True)
    
    With oDoc.WebOptions
        .RelyOnCSS = True
        .OptimizeForBrowser = True
        .OrganizeInFolder = True
        .UseLongFileNames = True
        .RelyOnVML = False
        .AllowPNG = True
        .ScreenSize = 3 'msoScreenSize800x600
        .PixelsPerInch = 96
        .encoding = 65001
    End With
    With oDoc.Application.DefaultWebOptions
        .UpdateLinksOnSave = True
        .CheckIfOfficeIsHTMLEditor = False
        .CheckIfWordIsDefaultHTMLEditor = False
        .AlwaysSaveInDefaultEncoding = False
        .SaveNewWebPagesAsWebArchives = False ' 修改为False,生成带文件夹的HTML
    End With
    
    ' 指定保存格式为HTML(wdFormatHTML = 8)
    oDoc.SaveAs Replace(uPath, ".docx", ".html"), FileFormat:=8
    
    oDoc.Saved = True
    oDoc.Close
    
    oWord.Quit
    Set oWord = Nothing
    
End Sub

内容的提问来源于stack exchange,提问作者tmighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:25:18