首页 > 解决方案 > 如何构建变量以重用文本设置?

问题描述

我正在从 Excel 子(下面的示例代码)将一系列文本框绘制到发布者文件(通过发布者形状)中。

我遇到的问题是我似乎无法声明一个字体并在以后重用它,所以我必须为每个文本框单独更改字体、文本大小、颜色、粗体和对齐方式。

我的问题是:有没有办法将字体保存为变量,并通过简单地分配字体变量来设置形状的所有文本属性?我该怎么做呢?

'Values
Dim ptab0v, ptab1v, ptab2v, ptab3v, ptab4v, ptab5v, ptab6v, ptab7v, ptab8v, ptab9v, ptab10v, ptab11v As String
'Shapes
Dim ptab0s, ptab1s, ptab2s, ptab3s, ptab4s, ptab5s, ptab6s, ptab7s, ptab8s, ptab9s, ptab10s, ptab11s As Publisher.Shape

ptab0v = "filler"

Set ptab0s = appPub.ActiveDocument.Pages(5).Shapes.AddTextbox _
(Orientation:=msoTextOrientationHorizontal, _
Left:=conv * 0.82, Top:=conv * 2.77, Width:=conv * 1.43, Height:=conv * 0.29)

ptab0s.TextFrame.TextRange.Text = ptab0v

'---I WANT THE FOLLOWING LINES TO BE SIMPLIFIED TO ONE LINE---
ptab0s.TextFrame.TextRange.Font.Name = "Monsterrat"
ptab0s.TextFrame.TextRange.Font.Size = 14
ptab0s.TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
ptab0s.TextFrame.TextRange.Font.Bold = msoTrue
ptab0s.TextFrame.TextRange.ParagraphFormat.Alignment = pbParagraphAlignmentCenter

标签: excelvbapublisher

解决方案


(为便于阅读而简化)您可以通过设置字体变量(在我的情况下为 Publisher.Font 类型)来做到这一点

例如:

Dim ptab0v, ptab1v, ptab2v As String
Dim ptab0s, ptab1s, ptab2s As Publisher.Shape
Dim ptabFont As Publisher.Font

ptab0v = "filler"
ptab1v = "filler"
ptab2v = "filler"

Set ptab0s = (set shape)
        ptab0s.TextFrame.TextRange.Text = ptab0v ' set value

        'Font settings
        ptab0s.TextFrame.TextRange.Font.Name = "Monsterrat"
        ptab0s.TextFrame.TextRange.Font.Size = 14
        ptab0s.TextFrame.TextRange.Font.Color.RGB = RGB(153, 30, 32)
        ptab0s.TextFrame.TextRange.Font.Bold = msoTrue
        
        Set ptabFont = ptab0s.TextFrame.TextRange.Font



Set ptab1s = (set shape)
        ptab1s.TextFrame.TextRange.Text = ptab1v ' set value

        'reuse font
        ptab1s.TextFrame.TextRange.Font = ptabFont

Set ptab2s = (set shape)
        ptab2s.TextFrame.TextRange.Text = ptab2v ' set value

        'reuse font
        ptab2s.TextFrame.TextRange.Font = ptabFont


推荐阅读