Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 查找文本框中每行的不同字体_Vba_Fonts_Powerpoint - Fatal编程技术网

Vba 查找文本框中每行的不同字体

Vba 查找文本框中每行的不同字体,vba,fonts,powerpoint,Vba,Fonts,Powerpoint,我正在设计一个宏来校对PowerPoint演示文稿,检查幻灯片上的每个文本框/形状,并输出字体类型、大小和颜色。我让它工作到一定程度,它会吐出每个形状的字体大小,问题是当给定形状中每行有多个字体大小时。当前,例如,如果第一行是Arial 12,下一行是Arial 14,则输出只需取第一行,并表示有两行是Arial 12 Dim lFindColor As Long Dim oSl As Slide Dim oSh As Shape Dim colorsUsed As String Dim fo

我正在设计一个宏来校对PowerPoint演示文稿,检查幻灯片上的每个文本框/形状,并输出字体类型、大小和颜色。我让它工作到一定程度,它会吐出每个形状的字体大小,问题是当给定形状中每行有多个字体大小时。当前,例如,如果第一行是Arial 12,下一行是Arial 14,则输出只需取第一行,并表示有两行是Arial 12

Dim lFindColor As Long
Dim oSl As Slide
Dim oSh As Shape

Dim colorsUsed As String
Dim fontsUsed As String

Dim lRow As Long
Dim lCol As Long

Dim shpFont As String
Dim shpSize As String
Dim shpColour As String


Set oSl = ActiveWindow.View.Slide
Dim x As Integer

    For Each oSh In oSl.Shapes
    '----Shape Check----------------------------------------------------------
        With oSh
            If .HasTextFrame Then
                If .TextFrame.HasText Then
                    For x = 1 To .TextFrame.TextRange.Runs.Count
                        shpFont = shpFont & .TextFrame.TextRange.Font.Name & ", "
                        shpSize = shpSize & .TextFrame.TextRange.Font.Size & ", "
                        shpColour = shpColour & .TextFrame.TextRange.Font.Color.RGB & ", "
                    Next
                End If
            End If
        End With
    Next

如何搜索每一行并给出形状中每一行的字体大小/类型?

您正在循环.Runs(如果整个TextRange具有相同的方法和属性集,则为子集),但输出整个TextRange的样式属性。改为使用.TextFrame.TextRange.Runs(x).Font.Name等。

在.Runs中循环(如果整个TextRange具有相同的方法和属性集,则为子集),但输出整个TextRange的样式属性。改为使用.TextFrame.TextRange.Runs(x).Font.Name等