如何改变VBA中形状文本的样式?

2023-12-14

我用以下代码行更改了文本的大小

shp.CellsSRC(visSectionCharacter, 0, visCharacterSize).FormulaU = " 3pt"

我想使用相同的代码模式更改形状文本的样式(粗体)和颜色?

我没有找到确切的“公式”,你知道我该怎么做吗?

预先非常感谢

编辑:我找到了这一行的颜色:

shp.CellsSRC(visSectionCharacter, 0, visCharacterColor).FormulaU = "THEMEGUARD(RGB(255,0,0))"

我不知道为什么没有枚举用于设置样式。无论如何,它是形状属性中的第 2 列。所以使用

shp.CellsSRC(visSectionCharacter, 0, 2).FormulaU = 17

将您的文本设置为Bold.

你问我怎么知道这个?基于 Microsoft 的参考了解形状表,有一段有用的代码片段可供使用。

首先,在绘图中选择您想要查看属性信息的形状。然后在 Visio 编辑器中打开“形状属性”窗口(not在 VBE 中)——您可以通过查看开发人员功能区到达那里,然后单击“显示 ShapeSheet”图标

enter image description here

在形状属性窗口中,向下滚动直到看到“字符”部分。您必须选择属性窗口中的单元格之一。此处的示例选择了“样式”列。

enter image description here

完成此操作后,运行下面的代码片段,您将在 VBE 的立即窗口中获得所需的信息。

Public Sub DebugPrintCellProperties()
    ' Abort if ShapeSheet not selected in the Visio UI
    If Not Visio.ActiveWindow.Type = Visio.VisWinTypes.visSheet Then
        Exit Sub
    End If
    Dim cel As Visio.Cell
    Set cel = Visio.ActiveWindow.SelectedCell
    'Print out some of the cell properties
    Debug.Print "Section", cel.Section
    Debug.Print "Row", cel.Row
    Debug.Print "Column", cel.Column
    Debug.Print "Name", cel.Name
    Debug.Print "FormulaU", cel.FormulaU
    Debug.Print "ResultIU", cel.ResultIU
    Debug.Print "ResultStr("""")", cel.ResultStr("")
    Debug.Print "Dependents", UBound(cel.Dependents)
    ' cel.Precedents may cause an error
    On Error Resume Next
    Debug.Print "Precedents", UBound(cel.Precedents)
    Debug.Print "--------------------------------------"

End Sub

这将告诉您调用时要使用的部分、行和列CellsSRC。我所做的是找出属性,然后我手动将文本设置为粗体并查看结果DebugPrintCellProperties再次看到FormulaU = 17为大胆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何改变VBA中形状文本的样式? 的相关文章

  • 按名称获取形状 ID

    有什么办法可以得到一个形状Id如果你知道它是Name 例如 如果我有这个 Dim myshape As Shape myshape Name 我可以得到它吗Id myshape Id getIdByName myshape Name 当然
  • 触发 Outlook 事件:更改签名

    有谁知道是否可以在 Outlook 2016 中触发签名更改事件 IE 模拟点击签名 如下图所示 我正在尝试根据选择的 发件人 地址自动更改签名 我可以捕获 发件人 地址更改 如所回答here https stackoverflow com
  • 如何在VBA中循环400万数组时减少时间成本?

    我需要使用 VBA 执行 vlookup 功能 我需要从包含 460 万条记录的 Access 数据库中查找数据 Private Sub connectDB Dim sqlstr As String Dim mydata As String
  • 使用 VBScript 检查排序顺序

    假设我有一个数组 arr1 其中包含日期值 如下所示 Arr1 50 9 3 2012 4 57 02 AM 22 3 2012 5 57 02 AM 9 5 2012 8 57 02 AM 9 3 2011 4 57 02 上午 Edit
  • 从 Excel 与 VBA 调用时,VBA UDF 给出不同的答案

    以下 VBA 函数计算给定范围内包含公式的单元格数量 从 VBA 子程序调用时它可以正常工作 从 Excel 调用时 它返回区域中的单元格总数 来自 Excel 的调用是 CountFormulas A1 C7 即使该范围内只有两个带有公式
  • 优化 Excel VBA 代码

    我在 Excel 中有以下 VBA 代码 其目标是在找到给定文本时删除一行 并删除其正下方的行 它需要扫描大约 70 万行 大约需要一个小时才能扫描 10 万行 有人看到有什么优化吗 Sub RemovePageHeaders Applic
  • 将文件拖放到 Microsoft Access 中

    我在 Microsoft Access 中有一个表单 允许用户将附件上传到每条记录 我想通过让用户将文件拖放到附件字段中来使其更加用户友好 执行此操作的最佳方法是什么 我该如何执行此操作 以下是拖放 附加 文件以便与 MS Access 一
  • Outlook 代码中的 Excel FilePicker 对话框在后台打开

    我开发了一个 Outlook 宏 让用户选择并打开 Excel 文件 文件对话框在后台打开 对于用户来说 Outlook 应用程序似乎被卡住了 而它只是在等待用户在所有其他窗口后面的文件选择器对话框中选择文件 Dim SigFolder2
  • 从字典返回类属性的数组

    Background 最近试图回答一个question https stackoverflow com q 58835358 9758194 我自己在想是否可以直接从字典项返回类对象属性的数组 Code Imagine TstClass作为
  • MS Access 2003 - 有没有一种方法可以以编程方式定义图表的数据?

    因此 我有一些 VBA 用于获取使用表单的图表向导构建的图表 并自动将其插入到 PowerPoint 演示文稿幻灯片中 我将这些图表表单用作较大表单中的子表单 该表单具有用户可以选择的参数来确定图表上的内容 这个想法是 用户可以确定参数 根
  • 尝试从 Excel 添加附件到电子邮件,但仅知道文件名的第一部分

    我有一个宏 每天用来将自动生成的文件附加到电子邮件中 文件名需要采用某种格式 其中包括日期和时间 并且由于这是自动的 因此只能固有地知道日期 无需手动检查文件 我在用 Attachments Add and format date etc
  • Excel VBA - 将 .xls 附加到文件名以打开文件

    我有代码可以打开带有可变日期的文件 如下所示 如果不在输入框中输入 m d y xls 此代码将无法运行 我只想在输入框中输入 m d y 请看一下并让我知道我缺少什么 谢谢 Dim wbkOpen As Workbook Dim strF
  • 如何取消透视交叉表之类的表格?

    从 Excel 文档导入数据后 我最终得到了一个如下所示的表格 与数据透视表非常相似 EMPLOYEEID SKILL1 SKILL2 SKILL 3 emp1 1 3 emp2 2 3 emp3 1 emp4 2 3 在我的数据库中 我有
  • 使用VBA从Zip中删除一些特定文件[重复]

    这个问题在这里已经有答案了 在完整的宏观过程中 我正在创建一个Zip的文件Folder 该文件夹有多个子文件夹和文件 使用此代码 Dim oApp As Object NewZip s path acc name zip Set oApp
  • 如何防止Excel单元格更新?

    我有一个相当大的范围 10 000 行 10 列 我每天都会逐行填充它 我还有一个较小的范围 366 行 5 列 其中 对于每个单元格 我运行一个宏 该宏的作用与 DSUM 或 SUMIF 的作用几乎相同 但具有多个条件 问题是 在实现了这
  • 通过变量引用工作簿和工作表

    引用不同工作簿的工作表的正确语法是什么 以下代码在最后一行抛出错误 谢谢 Instantiate Workbook variables Dim mWB As Workbook master workbook Instantiate Work
  • 使用 For Next 循环转换超过 500 行的日期格式

    我需要将 C 列中的日期 直到最后一行 从现有格式 24 01 2016 转换为 24 01 2016 结果必须采用日期格式 我当前的代码是 LastRow9 ws5 Cells Rows Count C End xlUp Row For
  • 如何使用单元格内的十六进制颜色值突出显示单元格?

    我有一个符号和匹配的十六进制颜色的电子表格 我想用单元格内的十六进制颜色填充单元格本身 或其旁边的单元格 我读过一些有关 条件格式 的内容 我认为这就是实现的方法 我怎样才能达到我想要的结果 条件格式无法实现所有颜色 假设 Row1 包含数
  • Excel:如何通过VBA搜索电子表格1值是否存在于电子表格2中

    在电子表格 1 中 B 列包含值 即 V 9999 我正在尝试查看电子表格 2 的 B 列中是否存在这些值 我遇到的问题是 每次更新电子表格时数据都会发生变化 并且 B 列中的每行之间并不总是 1 1 匹配 例如 V 9999 可能存在于电
  • 如果我后面不写“as Something”,用“Dim”来声明变量是没有用的吗?

    例如 下面两个代码是否相同 如果我之后不写 作为整数 是否没有必要使用 Dim Sub something MyNumber 10 Worksheets 1 Range A1 MyNumber End Sub and Sub somethi

随机推荐