龙空技术网

如何零基础学习VBA—HtmlConformanceMode对象

ILYNWA 49

前言:

而今兄弟们对“vbahtml”大体比较关心,大家都想要分析一些“vbahtml”的相关资讯。那么小编也在网上搜集了一些关于“vbahtml””的相关资讯,希望咱们能喜欢,兄弟们快快来了解一下吧!

在VBA中,HtmlConformanceMode对象是用于设置 HTML 文档的兼容性模式的属性之一。它可以指定 HTML 文档要使用的兼容性规范,以确保在不同的浏览器和版本中都以相同的方式呈现。

HtmlConformanceMode 对象有以下三个属性:

1、列举兼容性模式:通过 HtmlConformanceMode 列举来设置。值包括 html401strict、html401loose、IE7, IE8, IE9, IE10, IE11 或 edge 。默认值为 html401strict。

2、兼容性模式版本:通过 MajorVersion 和 MinorVersion 属性来获取或设置,以确定使用的是具体哪个版本的兼容性模式。

3、用户代理类型:通过 UserAgent 属性来设置,以指定客户端使用的用户代理类型。

HtmlConformanceMode 对象主要用于控制和调整 VBA 中的 HTML 文档的呈现方式,以便更好地适应不同环境下的展示效果和交互行为。

下面是具体的 VBA 代码示例,演示如何使用 HtmlConformanceMode 对象的三个属性:

1、设置并获取兼容性模式:

Dim objHtmlDoc As HTMLDocumentSet objHtmlDoc = New HTMLDocument' 设置兼容性模式为 IE11objHtmlDoc.parentWindow.document.mode = 11' 获取兼容性模式Dim conformanceMode As StringconformanceMode = objHtmlDoc.parentWindow.document.modeDebug.Print "当前兼容性模式:" & conformanceMode

2、设置并获取兼容性模式的版本:

Dim objHtmlDoc As HTMLDocumentSet objHtmlDoc = New HTMLDocument' 设置兼容性模式为 Edge 具体版本 16.0objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MajorVersion = 16objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MinorVersion = 0' 获取兼容性模式的版本Dim majorVersion As LongDim minorVersion As LongmajorVersion = objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MajorVersionminorVersion = objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MinorVersionDebug.Print "当前兼容性模式版本:" & majorVersion & "." & minorVersion

3、设置用户代理类型:

Dim objHtmlDoc As HTMLDocumentSet objHtmlDoc = New HTMLDocument' 设置用户代理类型为 Mozilla FirefoxobjHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"' 获取用户代理类型Dim userAgent As StringuserAgent = objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.UserAgentDebug.Print "当前用户代理类型:" & userAgent

4、针对每个不同的版本设置兼容性模式:

Select Case Application.Version    Case "14.0" ' Excel 2010        objHtmlDoc.parentWindow.document.mode = 9    Case "15.0" ' Excel 2013        objHtmlDoc.parentWindow.document.mode = 10    Case "16.0" ' Excel 2016 or later        objHtmlDoc.parentWindow.document.mode = 11End Select

5、设置兼容性模式并在网页上显示其版本信息:

Dim objHtmlDoc As HTMLDocumentSet objHtmlDoc = New HTMLDocumentDim conformanceMode As StringconformanceMode = "IE11"objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko"objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.mode = conformanceMode' 在网页上显示兼容性模式和版本信息Dim infoDiv As HTMLDivElementSet infoDiv = objHtmlDoc.createElement("div")infoDiv.innerText = "当前兼容性模式:" & conformanceMode & vbCrLf & _                    "当前兼容性模式版本:" & objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.majorversion & "." & objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.minorversionobjHtmlDoc.body.appendChild infoDiv

6、获取并列举所有可用的兼容性模式:

Dim objHtmlDoc As HTMLDocumentSet objHtmlDoc = New HTMLDocument' 设置兼容性模式为 Edge 具体版本 18.0objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MajorVersion = 18objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.MinorVersion = 0' 列举所有可用的兼容性模式Dim conformanceModes() As StringconformanceModes = Array("html401strict", "html401loose", "IE7", "IE8", "IE9", "IE10", "IE11", "edge")Dim mode As VariantFor Each mode In conformanceModes    objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.mode = mode    Debug.Print "兼容性模式 " & mode & " 的版本:" & objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.majorversion & "." & objHtmlDoc.parentWindow.document.parentWindow.HTMLDocument.htmlconformancemode.minorversionNext mode

这些示例展示了如何使用 HtmlConformanceMode 对象的三个属性进行设置和获取不同的兼容性模式、版本和用户代理类型信息。

标签: #vbahtml #vb输出html #ie支持foreach #vbnethtmldocument