Excel高手必备!VBA代码教你制作炫酷气泡图,数据可视化轻松搞定

什么是 Bubble Chart(气泡图)?

Bubble Chart(气泡图)是一种数据可视化图表,用于展示三维数据。与散点图类似,气泡图在二维平面上绘制数据点,但每个数据点的大小由第三个变量决定。气泡图通常用于展示以下类型的数据:

  1. X轴:表示第一个变量。
  2. Y轴:表示第二个变量。
  3. 气泡大小:表示第三个变量(通常用于表示数量、比例等)。

使用 VBA 创建一个表格并生成气泡图的案例

以下是一个使用 VBA 在 Excel 中创建表格并生成气泡图的示例代码。该代码将创建一个包含多个数据系列的气泡图,并展示如何自定义图表的外观。

我们可以通过 VBA 动态生成一些随机数据,然后基于这些数据创建气泡图。以下是一个完整的 VBA 示例代码,它会在新的工作表中生成随机数据,并基于这些数据创建一个气泡图。

VBA 代码示例:动态生成随机数据并创建气泡图

Sub CreateBubbleChartWithRandomData()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim lastRow As Long
    Dim i As Integer
    
    ' 创建一个新的工作表
    Set ws = ThisWorkbook.Worksheets.Add
    ws.Name = "BubbleChartData"
    
    ' 生成表头
    With ws
        .Cells(1, 1).Value = "X轴"
        .Cells(1, 2).Value = "Y轴"
        .Cells(1, 3).Value = "气泡大小"
        
        ' 生成随机数据
        For i = 2 To 11
            .Cells(i, 1).Value = Int(Rnd() * 100) ' X轴数据 (0-100)
            .Cells(i, 2).Value = Int(Rnd() * 100) ' Y轴数据 (0-100)
            .Cells(i, 3).Value = Int(Rnd() * 20) + 5 ' 气泡大小 (5-25)
        Next i
        
        ' 获取最后一行
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
    
    ' 创建气泡图
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=50, Height:=300)
    With chartObj.Chart
        .ChartType = xlBubble
        .SetSourceData Source:=ws.Range("A1:C" & lastRow)
        .HasTitle = True
        .ChartTitle.Text = "随机数据气泡图"
        
        ' 自定义X轴和Y轴标题
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Text = "X轴"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Text = "Y轴"
        
        ' 自定义气泡图的外观
        .SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 0, 255) ' 设置气泡颜色为蓝色
        .SeriesCollection(1).Format.Fill.Transparency = 0.3 ' 设置透明度
        .SeriesCollection(1).HasDataLabels = True ' 显示数据标签
    End With
    
    ' 调整图表位置
    chartObj.Left = ws.Range("E1").Left
    chartObj.Top = ws.Range("E1").Top
    
    ' 自动调整列宽
    ws.Columns("A:C").AutoFit
    
    MsgBox "随机数据气泡图创建完成!"
End Sub

代码说明:

  • 创建新工作表
  • 使用 Worksheets.Add 创建一个新的工作表,并命名为 BubbleChartData
  • 生成随机数据
  • A1:C1 列中设置表头(X轴Y轴气泡大小)。
  • 使用 Rnd() 函数生成随机数据:X轴 数据范围:0 到 100。Y轴 数据范围:0 到 100。气泡大小 数据范围:5 到 25。
  • 创建气泡图
  • 使用 ChartObjects.Add 方法在工作表中添加一个气泡图。
  • 设置图表的数据源为 A1:C11
  • 设置图表的标题为 随机数据气泡图
  • 自定义图表
  • 设置 X 轴和 Y 轴的标题。
  • 自定义气泡的颜色为蓝色,并设置透明度为 0.3。
  • 显示数据标签。
  • 调整图表位置
  • 将图表放置在 E1 单元格的右侧。
  • 自动调整列宽
  • 自动调整 A:C 列的宽度以适应数据。

运行代码:

  1. 打开 Excel,按 Alt + F11 打开 VBA 编辑器。
  2. 在 VBA 编辑器中,插入一个新模块(Insert > Module)。
  3. 将上述代码粘贴到模块中。
  4. F5 运行代码。


结果:运行代码后,Excel 将创建一个新的工作表,其中包含随机生成的数据和一个气泡图。气泡图将显示 X轴 和 Y轴 的数据,并根据 气泡大小 列调整气泡的大小。


通过 VBA,您可以动态生成随机数据并创建气泡图,即使没有实际的表格数据。这种方法非常适合在测试或演示中使用,快速生成可视化的数据图表。

原文链接:,转发请注明来源!