整合营销服务商

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

免费咨询热线:

WORD_VBA文本框的添加、删除、写入及保存为html文件

分享成果,随喜正能量】我们毕生的任务就是做一个优秀的普通人。这个优秀的普通人,热爱世界,热爱万物,热爱众生,然后踏踏实实地去寻找到一个自己内心喜欢又有时代价值的事情。一个人一辈子能够做好一两件事就很好了。。

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据的准确度。我推出的VBA系列教程共十套(本文的最后附有VBA教程目录和VBA工具目录),现在已经全部完成。

如果您VBA是入门阶段,可以打包选择7.1.3.9教程,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。如果您有了一定的VBA基础可以根据自己的需要,进行教程的选择。教程提供的程序源码文件就如一座大型的代码库支持着大家的工作。同时还有实用的资料送给学员。

VBA是面向对象编程的语言,博大精深。很多朋友咨询英语和VBA的关系,这套《VBA即用型代码手册(汉英)》集合了众多的案例,案例我用汉语和英语同时发布,学员从中可以更好的领会和掌握VBA中用到的一些英语。今日的内容:WORD_VBA文本框的添加、删除、写入及保存为html文件

第六章 Word对象及示例

Word Objects and Macro Examples

7 文本框的添加、删除、写入 TextBox: Add, Delete, Write

Sub mynzAddTextBox()

ActiveDocument.Shapes.AddTextBox Orientation:=msoTextOrientationHorizontal, _

Left:=100, Top:=180, Width:=300, Height:=100

End Sub

Sub mynzDeleteTextBox()

'我们需要检查 oShape 是否属于 msoShapeRectangle 类型,并且它的文本框是否包含书写位置

Dim oShape As Shape

If ActiveDocument.Shapes.Count > 0 Then

For Each oShape In ActiveDocument.Shapes

If oShape.AutoShapeType = msoShapeRectangle Then

If oShape.TextFrame.HasText = True Then

oShape.Delete

End If

End If

Next oShape

End If

End Sub

Sub mynzWriteInTextBox()

Dim oShape As Shape

If ActiveDocument.Shapes.Count > 0 Then

For Each oShape In ActiveDocument.Shapes

If oShape.AutoShapeType = msoShapeRectangle Then

If oShape.TextFrame.HasText = True Then

oShape.TextFrame.TextRange.InsertAfter "VBA Case"

Exit For

End If

End If

Next oShape

End If

End Sub

8 另存为html文件SaveAs .Html File

Sub mynzSaveMewithDateName()

'将当前活动文档保存为过滤后的 html,并以当前时间命名

Dim strTime As String

strTime = Format(Now, "hh-mm")

ActiveDocument.SaveAs FileName:=ActiveDocument.Path & "\" & strTime, FileFormat:=wdFormatFilteredHTML

End Sub

【分享成果,随喜正能量】我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

分享成果,随喜正能量】总有一段时光,让我们深感痛苦,但不是所有的时光都这样,我们要学会在黑暗中,找到一丝光芒,这束光来自于内心,它会让我们重新找到好日子。。

o.1

Excel表格是可以作为网页来进行展示的,也就是说当你完成一个表格,想要通过Web网页来进行发布,那么就需要看这篇文章了。

目前网络技术发展十分快,办公方式也逐渐向网络办公进行迁移,这是大趋势。

那么,当我们编辑好一个工作表之后,如何在网页上正确显示,就需要以Web代码形式来进行处理,这是Excel之外的另一种编码方式,但是Excel也给出了解决方法。

如下图所示,编辑好一个表格,通过一些代码就可以实现网页显示。

下图为发布成Web页的效果,也就是Htm后缀的文件。

Htm文件有什么用呢?

它是Web页通用格式,当然不是唯一的格式,也就是说,Htm格式可以用任何浏览器打开,而xls或xlsx只能用Excel或WPS等编辑软件打开,通用性不同,Htm格式只能读不能编辑。

下面进入正题,了解一下通过VBA如何实现Web网页发布。

如下图所示,首先要认识PublishObject对象,图中有对象的方法和属性详细内容。

PublishObject对象看不到,它是不是存在,可以通过代码来查看。

WorkBook.PublishObjects.Count '返回工作薄中的PublishObject对象数

WorkBook.PublishObjects.item(1).FileName'返回第一个PublishObject对象文件地址和文件名

PublishObjects是一个集合,包含了所有PublishObject对象。

发布只用一个方法:

PublishObject.Publish(true)

具体研究可以看一下代码

No.2

Sub NewPublishObject(xPath As String) '导出Html文件
On Error Resume Next
Dim wx As Workbook, pobj As Object
Set wx = ActiveWorkbook
Set pobj = wx.PublishObjects.Add(xlSourceRange, xPath, wx.ActiveSheet.Name _
, wx.ActiveSheet.UsedRange.Address, xlHtmlStatic, "", wx.ActiveSheet.Name)
    With pobj
        .Publish (True)
        .AutoRepublish = False
         '   MsgBox .DivID
    End With
Set pobj = Nothing
End Sub

上述代码首先添加一个PublishObject对象,然后再进行方法和属性设置。

添加PublishObject使用PublishObjects.Add()方法

具体参数如下图所示:

如果要进行网页展示表格,相信这个还是十分有用的。

欢迎关注、收藏

---END---

头条创作挑战赛# 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 中应用相应的样式。】