如何将所选文本垂直对齐到表格单元格的中间和中心



我有一项常规任务,将多个表中不同位置的选定文本更改为设置的字体和大小,并在表中居中,垂直在中间。

无论选择什么文本,我都可以更改字体和文本大小。

我搞不清路线。

Sub SR()
With ActiveWindow.Selection.TextRange2.Font
.Name = "Roboto Light (Body)"
.Size = "10"
End With
End Sub

解决方案:

Sub SR()
Dim oTbl As Table
Dim oSh As Shape
Dim lRow As Long
Dim lCol As Long

' Get a reference to the parent table
With ActiveWindow.Selection.ShapeRange(1).Table
' Find the selected cell
For lRow = 1 To .Rows.Count
For lCol = 1 To .Columns.Count
If .Cell(lRow, lCol).Selected Then
With .Cell(lRow, lCol).Shape.TextFrame2
.HorizontalAnchor = msoAnchorCenter
.VerticalAnchor = msoAnchorMiddle
End With
With .Cell(lRow, lCol).Shape.TextFrame2.TextRange.Font
.Name = "Roboto Light (Body)"
.Size = "10"
End With
End If
Next
Next

End With
End Sub

将此与您所拥有的相结合,它应该会让您达到目标。

您可以设置所选文本的字体和其他特征,但要更改对齐方式,您需要使用包含文本的形状。通常情况下,您可以沿着所选文本的父链查找以获得包含的形状,但不幸的是,这不适用于表单元格中的文本。PPTBug。

相反,你必须查看每个单元格,以确定它是否被选中,如果是,则深入到它的形状。这就是我们在这里所做的。

顺便说一句,没有一个版本的PPT有宏记录器了,甚至Windows也没有。

Sub Test()
Dim oTbl As Table
Dim oSh As Shape
Dim lRow As Long
Dim lCol As Long

' Get a reference to the parent table
With ActiveWindow.Selection.ShapeRange(1).Table
' Find the selected cell
For lRow = 1 To .Rows.Count
For lCol = 1 To .Columns.Count
If .Cell(lRow, lCol).Selected Then
With .Cell(lRow, lCol).Shape.TextFrame2
.HorizontalAnchor = msoAnchorCenter
.VerticalAnchor = msoAnchorMiddle
End With
End If
Next
Next

End With

End Sub

最新更新