用于更改所选图表大小的ActiveX按钮

时间:2013-11-05 19:13:19

标签: excel-vba vba excel

我在一个页面上有一个包含30多个小散点图的电子表格。我正在设置它,以便如果用鼠标单击其中一个图,它会将高度和宽度放大400%(锁定宽高比)。你能通过点击它来增加当前选择的任何地块的大小吗?

如果无法做到这一点,我可以将单个调整大小绑定到ActiveX按钮吗?我需要一个按钮来处理所有绘图(无论我决定点击什么),而不需要为每个图表名称使用不同的代码。

有什么想法吗?

谢谢,

杰夫

1 个答案:

答案 0 :(得分:1)

我担心你的问题没有完美答案。 Excel不提供可在此情况下使用的任何“OnClick”事件。我能想出的最佳答案是使用下面的宏,然后为宏指定一个快捷方式或按钮。这样,当您选择图表并按下指定的快捷方式或按钮时,图表将放大或缩小其大小(基于给定的阈值)。

Sub ResizeChart()
    Dim ChtObj As ChartObject

    'If a chart is selected
    If TypeName(Selection) = "ChartArea" Then
         Set ChtObj = ActiveChart.Parent

         Select Case ChtObj.Height
            Case Is <= 300          '<~~~ Assign threshold value for when to downscale
                ChtObj.Height = ChtObj.Height * 4
                ChtObj.Width = ChtObj.Width * 4
            Case Else
                ChtObj.Height = ChtObj.Height / 4
                ChtObj.Width = ChtObj.Width / 4
        End Select
    End If

End Sub