整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

「源码」VBA使用Outlook发送HTML格式邮件

「源码」VBA使用Outlook发送HTML格式邮件

用VBA从Access创建HTML电子邮件只需将下面Outlook相关属性的语句
.Body=strBody
修改为
.HTMLBody=strBody


具体函数如下:











阅读原文:http://www.accessoft.com/article-show.asp?id=20108 里复制代码。

头条创作挑战赛# HTMLStyleElement 对象是 Excel VBA 中用来操作 HTML 样式的元素对象。它表示 HTML 页面中的样式标签(<style>)。

下面是 6 个代码实例,用来说明 HTMLStyleElement 对象的用法:

1、创建一个新的 <style> 元素对象,并将其添加到 HTML 文档中:

Dim style As Object
Set style=ThisWorkbook.Sheets("Sheet1").OLEObjects.Add(ClassType:="HTML Style")

2、设置 <style> 元素的 innerHTML 属性,即添加样式规则:

style.Object.innerHTML="body { background-color: lightblue; }"

3、获取 <style> 元素的 innerHTML 属性,即获取样式规则:

Dim styleRules As String
styleRules=style.Object.innerHTML

4、将 <style> 元素插入到 HTML 文档中的某个节点之前:

Dim targetNode As Object
Set targetNode=ThisWorkbook.Sheets("Sheet1").OLEObjects("targetNode")

targetNode.ParentNode.insertBefore style.Object, targetNode

5、从 HTML 文档中移除 <style> 元素:

style.Delete

6、通过指定 <style> 元素的 id 属性,获取具有特定 id 的 <style> 元素对象:

Dim styleId As String
styleId="myStyle"

Dim style As Object
Set style=ThisWorkbook.Sheets("Sheet1").OLEObjects(styleId).Object

通过以上的代码实例,你可以了解如何创建、设置、获取、移除和查找 HTMLStyleElement 对象。注意,在上述代码中,ThisWorkbook.Sheets("Sheet1") 可以根据你的具体情况进行修改,以指定你要操作的工作表。

当我感到压力或需要放松时,我通常会使用 Excel 来记录和跟踪我的情绪和心理状态。我创建了一个简单的示例,使用 HTMLStyleElement 对象在 Excel 中应用不同的样式主题来反映我的情绪。

Sub ApplyEmotionalStyle()
    ' 创建新的 HTMLStyleElement 对象
    Dim style As Object
    Set style=ThisWorkbook.Sheets("Sheet1").OLEObjects.Add(ClassType:="HTML Style")
    
    ' 根据情绪类型设置样式规则
    Dim mood As String
    mood=InputBox("请输入你的情绪类型(例如:happy、sad、excited、calm):")
    
    Select Case mood
        Case "happy"
            style.Object.innerHTML="body { background-color: yellow; }"
        Case "sad"
            style.Object.innerHTML="body { background-color: blue; }"
        Case "excited"
            style.Object.innerHTML="body { background-color: red; }"
        Case "calm"
            style.Object.innerHTML="body { background-color: green; }"
        Case Else
            MsgBox "无效的情绪类型"
            Exit Sub
    End Select
    
    ' 将样式应用到整个工作表
    ThisWorkbook.Sheets("Sheet1").Cells.Font.Name="Arial"
    ThisWorkbook.Sheets("Sheet1").Cells.Font.Size=14
    ThisWorkbook.Sheets("Sheet1").Cells.Font.Color=RGB(255, 255, 255)
    ThisWorkbook.Sheets("Sheet1").Cells.Interior.Pattern=xlNone
    ThisWorkbook.Sheets("Sheet1").Cells.Interior.ColorIndex=xlColorIndexNone
    ThisWorkbook.Sheets("Sheet1").Cells.Interior.ThemeColor=xlThemeColorLight1
    
    ' 将 <style> 元素插入 HTML 文档中的某个节点之前
    Dim targetNode As Object
    Set targetNode=ThisWorkbook.Sheets("Sheet1").Range("A1")
    targetNode.ParentNode.insertBefore style.Object, targetNode
    
    ' 弹出对话框展示情绪样式的效果
    MsgBox "样式已应用到工作表中的单元格范围"
End Sub

当运行上述代码时,它会提示你输入情绪类型,然后根据输入的情绪类型应用相应的样式。例如,如果输入 “happy”,则会将工作表的背景颜色设置为黄色。你可以根据需要添加更多的情绪类型和对应的样式规则。【请注意,该代码假定在工作表 “Sheet1” 中有一个 Range 对象(A1) 作为目标节点,你也可以根据需要修改它】

在使用 HTMLStyleElement 对象时,需要注意以下几点:

1、确保在添加 <style> 元素之前,要创建一个 OLEObject 控件并将其类型设置为 “HTML Style”,然后再通过 Object 属性来访问 HTMLStyleElement 对象。

Dim style As Object
Set style=ThisWorkbook.Sheets("Sheet1").OLEObjects.Add(ClassType:="HTML Style")

2、使用 .innerHTML 属性来设置或获取 <style> 元素的样式规则。样式规则必须遵循 CSS 的语法规则。

style.Object.innerHTML="body { background-color: lightblue; }"

3、在插入 <style> 元素之前,需要找到要将其插入到的目标节点。通过 ParentNode 属性和 insertBefore 方法来实现。

Dim targetNode As Object
Set targetNode=ThisWorkbook.Sheets("Sheet1").Range("A1")

targetNode.ParentNode.insertBefore style.Object, targetNode

4、如果不再需要 <style> 元素,可以使用 Delete 方法将其从文档中删除。

style.Delete

5、当在 Excel 中使用 HTMLStyleElement 对象时,要确保选择适当的目标范围(比如工作表、单元格等),以便样式被正确应用。

6、需要遵循 CSS 的语法规则,确保正确设置样式规则。例如,必须使用正确的 CSS 选择器(如 “body”、“div”)和属性(如 “background-color”、“font-size”)。

7、HTMLStyleElement 对象只能应用于支持 HTML 渲染的环境中,例如在 WebBrowser 控件中或使用 VBA 内置的 Web 浏览器。

8、在应用样式之前,应该清楚目标节点的父节点是否支持样式。例如,在 <style> 元素之前的节点必须是支持样式的元素。

【通过遵循以上注意事项,你能够正确地使用 HTMLStyleElement 对象来操作样式规则并在 Excel 中应用相应的样式。】

分享成果,随喜正能量】人生,有多少计较,就有多少痛苦。有多少宽容,就有多少欢乐。痛苦与欢乐都是心灵的折射,就像镜子里面有什么,决定于镜子面前的事物。心里放不下,自然成了负担,负担越多,人生越不快乐。计较的心如同口袋,宽容的心犹如漏斗。复杂的心爱计较,简单的心易快乐。

《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,八十四讲。今日的内容是专题八“VBA与HTML文档”的第二节上半部分:HTML文档元素

第二节 HTML文档的元素分析之一

大家好,我们这讲开始HTML的讲解,为了认识这种特殊的语言,我们要先看看这种语言中的各种元素个代表什么意义。上节中在讲这种语言的特征时讲过,标签是用来描述网页的。浏览器读取HTML文档,识别标签,并按标签要求以网页进行显示文本。大部分标签都是成队出现的。

起始标签和结束标签之间的所有文本,都叫做元素。也就是这个格式就是:

<起始标签:也叫元素名>元素的内容<结束标签:/+元素名>

标签是可以拥有属性的,属性提供了元素的一些附加信息,起始标签,有时候格式如下:

<元素名 属性名称=”属性值”>

同时,元素是可以拥有元素的,即某个元素的内容有时候是一个子元素。

元素这东西,比较抽象,我们可以把它且当作一个对象来理解,例如工作簿对象,每个工作簿的名称都不一样(属性),每个工作簿里面都有工作表(子元素),每个表都有名称(属性),里面填写的内容也不一样(元素的内容)。

1 HTML文档构成的整体框架结构

在上一讲中我们举了一个最为简单的实例来说明HTML文档:

<html>

<body>

<h1>学习VBA语言</h1>

<p>为了更好的掌握VBA的各个知识点,您可以参考我的第一套教程:VBA代码解决方案</p>

</body>

</html>

我们将上面的格式修正一下,如下面:

<html>

<head> <!--注释:文档头部,文档相关消息,并不提供文档内容-->

<title>

VBA应用提高篇

</title>

</head>

<body> <!--注释:文档主体-->

<h1>学习VBA语言</h1>

<p>为了更好的掌握VBA的各个知识点,您可以先参考我的第一套教程:VBA代码解决方案</p>

</body>

</html>

将上面的内容写入记事本中保存为.html文件:HTML基础学习-1.html

然后我们双击打开这个文件,看看浏览器的翻译效果:

我们再看看网页的源码:

从上面的框架代码,我们可以看出,一般的页面,都有html元素,其一般内含两个元素,一个是head元素,一个是body元素。Head元素仅仅说明文档的相关消息,并不展示文档实体,body元素才是真正展示文档主体的,所有要在页面展示的元素,都要在body內进行书写。

2 HTML文档常用元素的构成

1)HTML标题 <h1> - <h6>

标题(Heading)是通过 <h1> - <h6> 等标签进行定义的。<h1> 定义最大的标题。<h6> 定义最小的标题。浏览器会自动地在标题的前后添加空行。标题很重要,将 HTML heading 标签只用于标题。不要仅仅是为了产生粗体或大号的文本而使用标题。因为用户可以通过标题来快速浏览您的网页,所以用标题来呈现文档结构是很重要的。应该将 h1 用作主标题(最重要的),其后是 h2(次重要的),再其次是 h3,以此类推。在HTML基础学习.HTML文件中我们已经用到了标题的元素

2)HTML水平线 <hr />

<hr /> 标签在 HTML 页面中创建水平线。可用于分隔内容。

[待续]

本节参考文件:HTML基础学习-1.html;HTML基础学习-2.html

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

【分享成果,随喜正能量】人生,一岁有一岁的味道,一站有一站的风景,你的年龄应该成为你生命的勋章而不是你伤感的理由。 ??