我正在使用vba创建一个excel文档并动态填充(已经完成并且工作正常)。我需要的是:弄清楚如何在本文档的多个位置添加,大小,位置和预填(建议的签名者,电子邮件,而不是签名本身)签名块。
我甚至不知道这是否可以用vba完成(我对这个主题的搜索没有帮助),但我很有希望,因为它将为我节省大量的时间和未来的繁琐工作。对此有任何帮助都是受欢迎的。
答案 0 :(得分:1)
您可能希望在定义的单元格(作为锚点)上放置简单的文本框,并用一些文本填充它。为了让您从这里开始,您需要的最低限度是:
创建Sub的实际文本框,它将所有信息作为参数:
Sub CreateShapeText(NailToCell As Range, w_pt As Single, h_pt As Single, DTxt As String)
Dim TB As Shape
' create a text box shape
' note: shapes belong to worksheets, therefore we derive a WS from cell.parent
Set TB = NailToCell.Parent.Shapes.AddLabel(msoTextOrientationHorizontal, NailToCell.Left, NailToCell.Top, w_pt, h_pt)
' make its border visible
TB.Line.Visible = msoTrue
' switch off that annoying auto-resize when text is entered
TB.TextFrame2.AutoSize = msoAutoSizeNone
' enter text ... and yes - this object tree is crazy
TB.TextFrame2.TextRange.Characters.Text = DTxt
' as it should be - text is vertical bottom
' but to have more control over the TB, this could be a parameter, too
TB.TextFrame2.VerticalAnchor = msoAnchorBottom
End Sub
你可以在代码中的任何地方调用它,如下例所示
Sub CallCreate()
CreateShapeText [A1], 132, 32, "sign: me"
CreateShapeText [C12], 132, 32, "sign: you"
End Sub
你从这里开始研究这些对象可以为你做些什么(例如,为框架制作虚线而不是实线,试验字体大小,对齐等)并回过头来回答更多问题... < / p>