使用vba将多个签名块添加到Excel文档中

时间:2017-09-30 07:47:03

标签: excel-vba vba excel

我正在使用vba创建一个excel文档并动态填充(已经完成并且工作正常)。我需要的是:弄清楚如何在本文档的多个位置添加,大小,位置和预填(建议的签名者,电子邮件,而不是签名本身)签名块。
我甚至不知道这是否可以用vba完成(我对这个主题的搜索没有帮助),但我很有希望,因为它将为我节省大量的时间和未来的繁琐工作。对此有任何帮助都是受欢迎的。

1 个答案:

答案 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>