查看原文
其他

一键生成饼图!ChatGPT4 制作 Excel VBA 代码示例

清风徐来 AI变现研习社 2024-06-01

这是《ChatGPT ,从入门到精通》 第 24 篇文章。

今天聊聊如何使用 ChatGPT 生成 VBA 代码,实现在Excel中,根据选中数据一键生成柱状图。

前两天,发表了《 用 ChatGPT4.0 做上市公司业绩分析》

有小伙伴留言,说很实用,如果图表制作更便捷就好了。

没问题!

老朋友都知道,本号分享过很多投资测算模版,独创的清风地产开发速算表,更被誉为最智能 Excel 测算模板。

AI来临后,也分享过《ChatGPT 联动Excel 的八种方法》

今天,为了让大家进一步提高工作效率,来讲讲如何利用 Chatgpt 制作 VBA!

最终实现效果如下:

文末有福利,附本章源码下载。

「一、什么是 VBA?」

在 EXCEL 中,要实现进一步的自动化功能,需要用到一种叫 VBA 的技术。

VBA 是 Visual Basic for Applications 的缩写,是一种基于 Visual Basic 的宏语言,可以用来扩展和自动化 Windows 的应用程序,特别是 Microsoft Office 软件。

VBA 可以让你通过编写代码来控制 Office 应用程序中的对象,例如单元格、文档、幻灯片等,实现一些复杂或重复的任务。

VBA 也可以让表格与用户交互,或者在不同的 Office 应用程序之间传递数据。

VBA 面向那些想要提高工作效率、自定义 Office 功能、解决特定问题的有经验的 Office 用户。

VBA 需要专门学习,会编程的用户可以通过宏录制器来快速生成代码,但绝大部分 Office 用户是不会VBA的。

如今有了ChatGPT,没有编程基础的人也可以轻松使用VBA!

「二、准备工作」

1、在 EXCEL 中启用“开发工具”

打开开发工具的方法如下:

  • 在“文件”选项卡上,转到“选项”>“自定义功能区”。在“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。

2、数据准备

可以先利用 Chatgpt 自动收集、整理需要分析的数据。

如何操作详见《 用 ChatGPT4.0 做上市公司业绩分析》

以下表格,就是用 chatgpt 收集的数据:

3、将Excel文件保存为“xlsm”后缀名

如果有数据的表格是 .xls 或者 .xlsx,需要另存为 .xlsm 后缀的文件。

4、登录开源 NewBing(新必应)

登录网址:https://bing.vcanbb.top

也可点击“阅读原文”访问

NewBing 基础使用见这篇《NewBING 直联版! 免费 ChatGPT4.0 + 实时联网 + AI 绘图功能》

以及这篇《开源 NewBing 使用答疑》

「三、具体操作」

一、插入表单控件按钮

插入后效果如下:

按钮名称可以自己按照功能修改。

二、让 Chatgpt 生成 VBA

我:“帮我写一个 excel 的 VBA 程序“

NewBing:“好的,你想要生成什么样的图表呢?是柱状图、折线图、饼图还是其他的?”

我:“我想要实现一个图表生成的功能”

NewBing:“好的,你想要生成什么样的图表呢?是柱状图、折线图、饼图还是其他的?”

我:“我想要生成一个柱状图”

NewBing:“好的,你的数据在哪个工作表和哪个范围呢?比如说,Sheet1 的 A1 到 C10。“

我:“根据我选中区域生成”

NewBing:“好的,你想要把图表放在哪里呢?是在新的工作表还是在当前工作表的某个位置?“

我:“当前工作表”

NewBing 生成了代码,但不能实现点击自动生成。

我:“请完善一下,我在 excel 中,已经插入了一个 acitvex 控件,实现:选中数据,点击 这个控件,生成柱状图”

NewBing 按要求完善了代码

Private Sub btnCreateChart_Click()
    '获取选中的区域
    Dim rng As Range
    Set rng = Selection

    '
创建一个柱状图对象
    Dim cht As ChartObject
    Set cht = ActiveSheet.ChartObjects.Add(Left:=rng.Left + rng.Width, Top:=rng.Top + rng.Height, Width:=400, Height:=300)

    '设置图表的数据源和类型
    With cht.Chart
        .SetSourceData Source:=rng
        .ChartType = xlColumnClustered
    End With

    '
添加图表标题
    cht.Chart.HasTitle = True
    cht.Chart.ChartTitle.Text = "柱状图"

End Sub


三、复制代码到 EXCEL

1、点击 激活excel 菜单栏“开发工具”的“设计模式”。

2、双击生成的按钮,进入 VB 编辑界面,删除原来所有代码,完整复制 Newbing 生成的代码,插入并保存退出。

3、再点击 excel 菜单栏“开发工具”的“设计模式”按钮,退出设计模式。

注意:运行前,首先要退出设计模式,其次,按钮的名称要和VB代码中的一致,否则点击按钮没有反应。

属性中:

代码中:

四、生成柱状图

现在可以根据需要,选择数据,一键生成 柱状图。

你可以根据需要,按住 ctrl 键,进行跳行选择。

比如反应盈利能力的指标选在一起、反应运营效率的指标选在一起。

也可以亿元的选在一起,%的选在一起:

也可以全部选中,再利用柱状图的筛选来 生成不同的组合:

这样,📊就做好了!

我已经把这个示例文件共享出来了。点赞+关注本公众号,回复 vba 即可获得excel文件和vba源代码。

另外,我又找了段非 AI 生成的代码,测试后一样有效,如下:


"Private Sub CommandButton1_Click()

  Dim i%, j%

  on error resume next

  ActiveSheet.ChartObjects(1).Activate

  ActiveChart.Parent.Delete

  i = Application.WorksheetFunction.CountA(Sheet1.Columns("
"A:A""))

  j = Application.WorksheetFunction.CountA(Sheet1.Rows("
"1:1""))

  Range(Cells(1, 1), Cells(i, j)).Select

  ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select

  ActiveChart.SetSourceData Source:=Range(Cells(1, 1), Cells(i, j))

End Sub"

我也放到了下载。

好啦,今天的分享到这里,别忘了关注、收藏、点赞、分享这篇文章哦!以便第一时间收到更多、更好玩儿的 ChatGPT 技巧分享哦。

「礼包」 只需在本公众号内回复“AI”,即可免费获得我们为您精心准备的学习大礼包。

「学习群」 如果你想学习 AI 知识,欢迎加入我们的学习群。请后台发送“入群”或扫描下方二维码。



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存