使用 VBA 如何将选定的文本与表格单元格的垂直中间和中心对齐?

问题描述 投票:0回答:1

我正在使用 MacOS,否则我会尝试宏录制器:(

我有一个定期重复的任务,将多个表格中不同位置的选定文本更改为设定的字体和大小,并在表格内居中并垂直位于中间。我不是每周执行一千次,而是尝试制作一个宏来使用 VBA 为我执行此操作。

到目前为止,我已经更改了所选文本的字体和文本大小,但似乎无法弄清楚与我的朋友 Google 的对齐方式。

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
vba powerpoint
1个回答
1
投票

将其与您所拥有的结合起来,它应该可以帮助您实现目标。

您可以设置所选文本的字体和其他特征,但要更改对齐方式,您需要使用包含文本的形状。 通常,您可以沿着所选文本的父链向上移动以获取包含的形状,但不幸的是,这不适用于表格单元格中的文本。 PPT错误。

相反,您必须查看每个单元格以查明它是否已被选中,如果是,则深入了解其形状。 这就是我们在这里所做的。

顺便说一句,现在没有任何版本的 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
© www.soinside.com 2019 - 2024. All rights reserved.