如何使用VBA检测Excel中的图形中是否有文本框?

如何使用VBA检测Excel中的图形中是否有文本框?,excel,vba,Excel,Vba,以下宏在y轴顶部生成一个文本框,以显示单位。我使用文本框而不是内置的图例格式,因为它更灵活 ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 80, 20).Select With Selection.ShapeRange(1).TextFrame2.TextRange .Characters.Text = "[Units]" End With 我想在此块之前添加一个条件,以便在文本框已经存在时代码停止

以下宏在y轴顶部生成一个文本框,以显示单位。我使用文本框而不是内置的图例格式,因为它更灵活

ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 80, 20).Select

With Selection.ShapeRange(1).TextFrame2.TextRange
    .Characters.Text = "[Units]"
End With
我想在此块之前添加一个条件,以便在文本框已经存在时代码停止。我如何1)计算一个图表中有多少个文本框(不是在整个表格中)和2)检查图表中是否有相同尺寸和位置的文本框

也许类似于以下内容,但不知何故仅限于文本框

If ActiveSheet.Shapes.Count > 0 Then
...

If ActiveSheet.Shapes(ActiveChart.Parent.Name).Count > 0 Then
...
1)计算图表中有多少个文本框(而不是整个表格)

如果图表嵌入到工作表中,则使用

Sub ChartInSheetHasTextBox()
    Dim ws As Worksheet
    Dim objChart As ChartObject
    Dim cht As Chart

    '~~> Change this to the relevant worksheet
    Set ws = Sheet1

    Set objChart = ws.ChartObjects(1)
    Set cht = objChart.Chart

    If cht.TextBoxes.Count > 0 Then
        MsgBox "Chart has a textbox"
    End If
End Sub
Sub ChartSheetHasTextBox()
    Dim cht As Chart
    Set cht = Charts("Chart1") '<~~ Change this to the relevant name

    If cht.TextBoxes.Count > 0 Then
        MsgBox "Chart has a textbox"
    End If
End Sub

如果图表是独立表,则使用此

Sub ChartInSheetHasTextBox()
    Dim ws As Worksheet
    Dim objChart As ChartObject
    Dim cht As Chart

    '~~> Change this to the relevant worksheet
    Set ws = Sheet1

    Set objChart = ws.ChartObjects(1)
    Set cht = objChart.Chart

    If cht.TextBoxes.Count > 0 Then
        MsgBox "Chart has a textbox"
    End If
End Sub
Sub ChartSheetHasTextBox()
    Dim cht As Chart
    Set cht = Charts("Chart1") '<~~ Change this to the relevant name

    If cht.TextBoxes.Count > 0 Then
        MsgBox "Chart has a textbox"
    End If
End Sub

我将循环
ActiveSheet.Shapes(ActiveChart.Parent.Name)
,并可能使用
typename
检查ActiveSheet.Shapes(ActiveChart.Parent.Name)在图形嵌入工作表时有效,而不是在图形位于其自己的工作表中时有效。有什么想法吗?