当前位置: 首页 > 知识库问答 >
问题:

如何更改在VBA中创建的下拉列表的字体大小和格式

萧丁雨
2023-03-14

我有一个7x16表格的单词模板,默认字体大小为22。此模板用于通过在ms Access中点击按钮生成16周的日历。日历应该是月和日22点,内容7点。这适用于文本,但不是我的下拉列表(应该是7pt字体和斜体)

我尝试使用以下代码将整个单元格的字体大小设置为7pt,但它也将月份和日期设置为7pt:

'Dim DDown As Word.Contentcontrol and curChar As int earlier in code (for context)
Set cel =  tbl.Cell(i, j)
    Set celRange = cel.Range

    celRange.Characters(curChar).Font.Size = 7 'This shrinks everything to 7pt

    celRange.Collapse wdCollapseEnd
    celRange.MoveEnd wdCharacter, -1

    Set DDown = celRange.ContentControls.Add(wdContentControlDropdownList) 

    'Add items to dropdown
    DDown.DropdownListEntries.Add "Shipping within 7 days"
    DDown.DropdownListEntries.Add "On schedule"
    DDown.DropdownListEntries.Add "On Hold"


    Set celRange = cel.Range
    celRange.Collapse wdCollapseEnd
    celRange.MoveEnd wdCharacter, -1
    celRange.Text = vbCrLf  'add a new line between dropdown lists
    celRange.Collapse wdCollapseEnd


    celRange.Select
    Set DDown = Nothing


线路

CelRange。字符(curChar)。字体。大小=7

将单元格中的所有内容缩小到7pt字体,而不仅仅是下拉列表。我还想把下拉列表斜体化。是外观属性吗?

共有1个答案

柴昆杰
2023-03-14

为了应用字体更改,有必要指定应用字体更改的确切范围。理论上,这将是:

ContentControl.Range.Font.Size = 7

但是,下拉内容控件似乎是一种特殊情况。在测试中,如果将字体格式直接应用于内容控件,则只会影响选择列表和占位符文本。但是,当选择条目时,格式将恢复为周围文本的格式。

进一步的实验表明,还需要在文档中创建包含所需格式的字符样式。这需要应用于内容控件和应用的直接格式化。

这是应用格式化的代码

    DDown.DropdownListEntries.Add "Shipping within 7 days"
    DDown.DropdownListEntries.Add "On schedule"
    DDown.DropdownListEntries.Add "On Hold"
    DDown.DefaultTextStyle = "Test7"
    DDown.Range.Font.Size = 7
    DDown.Range.Font.Italic = True

其中"Test7"是我在测试文档中创建的样式名称。

如果无法在文档中预定义样式,则需要动态创建样式。这里有一些示例代码。以下行应位于循环之前(只需执行一次),但应遵循打开/创建Word文档的代码:

    CreateFont7Style ActiveDocument, "DdFont7" 'If the code already has a Document object, use that, not ActiveDocument

(请记住用此处指定的样式名称替换上面代码行中的样式名称,该代码行将样式应用于下拉内容控件!)

CreateFont7Style的代码(您可以命名任何您想要的名称,只需确保在两个位置更改名称):

Sub CreateFont7Style(doc As Word.Document, styleName As String)
    Dim st As Word.style
    Dim fontSize As Long
    Dim bItalic As Boolean

    fontSize = 7
    bItalic = True

    Set st = doc.styles.Add(styleName, Word.WdStyleType.wdStyleTypeCharacter)
    st.Font.Size = fontSize
    st.Font.Italic = bItalic
End Sub
 类似资料:
  • 问题内容: 我有一个下拉列表,列出了字体系列。像Tahoma,Arial,Verdana等。我想根据其代表的值更改每个下拉项的字体系列。就像Photoshop一样。 我更改了每个下拉项的CSS,但仅适用于FireFox。它不能在任何其他浏览器上使用。 我不想使用任何jQuery插件。 问题答案: 这是因为子元素()并非真正可样式化,而Firefox似乎是唯一忽略规范那部分的浏览器。 解决方法是将您

  • 我有一个有很多表格的word文档。我想要一个宏,它将所有表的字体大小更改为10,将每个表自动匹配到窗口,并均匀分布列。我可以使用下面的代码完成最后两个目标,但不确定如何更改字体大小。任何帮助将不胜感激。

  • 问题内容: 您可以更改JOptionPane的字体和文本大小吗?我尝试了它,只有当我在那个特定的Java类上“运行文件”时,它才起作用。如果启动整个项目,则不会更改字体。我只想更改一个特定的JOptionPane而不是全部。 这是代码: 问题答案: 真的很简单。JOption窗格不仅接受字符串,还接受组件。因此,您可以创建一个标签集并设置其字体并将其用作消息。 我不明白为什么以前没人回答这个问题

  • 我想把我的字体大小从9改为9。但它会弹出“编译错误:预期表达式”。

  • 问题内容: 我正在JSP中创建一个页面,其中有一个下拉列表,一旦用户选择了一个值,他就必须单击go按钮,然后将该值发送到Servlet。 我该如何做才能在变更时做到呢?例如,当用户选择John时,将从数据库中检索出他的所有详细信息并显示出来。我希望系统无需单击“执行”按钮即可执行此操作。 问题答案: 只需询问JavaScript的帮助。

  • 问题内容: 我是Vala / Gtk的新手,我正在尝试更改Gtk.Label的字体大小,但是我找不到一种好的方法。 我发现我可以像这样使用标记: 但这似乎有点骇人听闻。正确的做法是什么? 问题答案: 您可以尝试使用CSS,我认为最近这是首选方法。给您的标签一个类,然后加载一个CSS。如果您要更改标签的字体大小,我敢打赌您也将自定义其他内容,因此CSS可能对您有用。