pha*_*han 12 excel vba label caption vertical-alignment
在Excel 2007中,我在工作表上插入了一个ActiveX标签.我右键单击它并查看属性并设法将TextAlign属性更改为2(frmTextAlignCenter).
这会将标签标题的文本与标签的中心(水平)对齐,但文本仍保留在标签的顶部.如何将标题的文本垂直居中,使其位于标签的中间位置?
我在SO中搜索了"垂直对齐",但是没有提到如何为Excel标签的标题执行此操作.
谢谢!
小智 14
有一个技巧可以使用单个标签来做到这一点。添加一个 1x1 像素的透明 gif 图像并将 PictureAlignment 属性设置为 PicturePositionLeftCenter。
我刚刚尝试了投票最高的答案中概述的方法,效果非常好。不过,为了在方法中添加一些内容 - 例如,如果您有很多标签,我会执行以下操作:
| 财产 | 价值 |
|---|---|
| 姓名 | GIF |
| 图片 | (设置为1x1透明gif图片[链接]) |
| 可见的 | False |
| 财产 | 价值 |
|---|---|
| 标签 | "LabelAlignmentTheme" |
UserForm_InitializePrivate Sub UserForm_Initialize()
'Apply the fix in /sf/ask/480138921/
'To all labels with the matching Tag
Dim ctrl As MSForms.control
For Each ctrl In Me.controls
If TypeOf ctrl Is MSForms.label And ctrl.Tag = "LabelAlignmentTheme" Then
Dim label As MSForms.label
Set label = ctrl
Set label.Picture = Me.GIF.Picture 'read the picture from the picture control
label.PicturePosition = fmPicturePositionLeftCenter
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我喜欢这种用法Tag,感觉像css样式。显然,您可以跳过对标签的检查(删除 And 语句的后半部分)并对齐所有内容,但我认为这是一个更现实的场景,您只需要一些对齐。
通过将图像存储在表单中某处的共享隐藏图片中,它将嵌入到文件中。