吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1917|回复: 40
收起左侧

[其他原创] [VBA] PPT/WPS演示 超级好用的形状(矩形)创建代码

  [复制链接]
ittech 发表于 2024-8-6 09:58
这份代码,实现了PPT中矩形的批量创建,如果觉得好请为我点个赞,谢谢!

所有产品经理都离不开画架构图,最常用的形式就是下图这样由N个“形状”组成的,最常用的是矩形。
别问我为什么会在PPT中画,而不是用亿图这些软件,问就是为了让别人也能用(纯纯的牛马),




众所周知,PPT中只能手工一个一个的插入矩形,那么如果KC很多的情况下为了自己不被累死,在AI的协助下创作了这份代码,


[Visual Basic] 纯文本查看 复制代码
Sub CreateRectanglesWithTextOnSingleSlide()
    Dim pptApp As Application
    Dim pptPres As Presentation
    Dim pptSlide As Slide
    Dim shp As Shape
    Dim i As Integer
    Dim rectWidth As Single
    Dim rectHeight As Single
    Dim list As Variant
    Dim xPosition As Single
    Dim yPosition As Single

    ' 获取当前的PowerPoint应用程序、演示文稿和幻灯片
    Set pptApp = Application
    Set pptPres = ActivePresentation
    Set pptSlide = pptPres.Slides.Add(1, ppLayoutBlank) ' 添加一个空白幻灯片

    ' 定义列表
    list = Array("第一行文字", "第二行文字", "第三行文字") ' 这里添加你的列表内容

    ' 设置矩形的宽度和高度
    rectWidth = 200
    rectHeight = 50

    ' 设置矩形的起始位置
    xPosition = 50 ' X坐标起始位置
    yPosition = 100 ' Y坐标起始位置

    ' 循环遍历列表,并在同一页幻灯片上创建矩形和文本
    For i = LBound(list) To UBound(list)
        ' 创建矩形
        Set shp = pptSlide.Shapes.AddShape(msoShapeRectangle, xPosition, yPosition, rectWidth, rectHeight)

        ' 设置矩形的填充颜色为蓝色
        shp.Fill.ForeColor.RGB = RGB(0, 0, 255) ' 蓝色背景

        ' 设置矩形的边框为无
        shp.Line.ForeColor.RGB = RGB(255, 255, 255) ' 白色边框,相当于无边框

        ' 在矩形中添加文本
        With shp.TextFrame
            .TextRange.Text = list(i) ' 列表中对应的文本
            .TextRange.Font.Color.RGB = RGB(255, 255, 255) ' 白色字体
        End With

        ' 更新矩形的X位置,以便下一个矩形水平排列
        xPosition = xPosition + rectWidth + 20 ' 20是两个矩形之间的间距
        ' 如果超出幻灯片宽度,重新设置xPosition并降低yPosition
        If xPosition + rectWidth > pptSlide.Master.Width Then
            xPosition = 50
            yPosition = yPosition + rectHeight + 20
        End If
    Next i
End Sub



现在只需要在Array("第一行文字", "第二行文字", "第三行文字") ' 这里添加你的列表内容,就可以自动生成这些矩形了,非常的人性。
image.png


免费评分

参与人数 11吾爱币 +16 热心值 +9 收起 理由
takeeasy5 + 1 热心回复!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
moranyuyan + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
LuckyClover + 1 + 1 谢谢@Thanks!
88897651 + 1 热心回复!
Duke0910 + 1 + 1 谢谢@Thanks!
我是一个外星人 + 1 用心讨论,共获提升!
tenvten + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhanglei1371 + 1 + 1 热心回复!
matrixzpc + 1 + 1 鼓励转贴优秀软件安全工具和文档!
wwqkcb + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

moranyuyan 发表于 2024-8-7 09:49
以下功能无法保存在未启用宏的演示文稿中:Visual Basic for Applications (BA)项目若要使保存的文件具有这些功能,请单击“否“返回“另存为"对话框,然后从“文件类型"列表中选择一个启用宏的文件类型,是否继续将此文件保存为未启用宏的演示文稿?
 楼主| ittech 发表于 2024-8-8 16:34
突然想到其实利用SmartArt,直接将文字列表转换成“基本列表”,再转换成形状,然后取消组合也能实现这个效果。
但WPS不支持,只能在PowerPoint里做。
19877130 发表于 2024-8-6 10:06
天天涨停天天盈 发表于 2024-8-6 10:19
看不太懂,我选择手搓。。。。
xinyangtuina 发表于 2024-8-6 10:20
留言支持。有成品就好了
linyufang 发表于 2024-8-6 10:21
马上研究研究,谢谢分享!
SmallRadar 发表于 2024-8-6 10:22
天天涨停天天盈 发表于 2024-8-6 10:19
看不太懂,我选择手搓。。。。

我也手搓+1,还是关注研究下工具
 楼主| ittech 发表于 2024-8-6 10:22
天天涨停天天盈 发表于 2024-8-6 10:19
看不太懂,我选择手搓。。。。

ppt里alt+F11创建一个模块,代码复制进去运行即可。

免费评分

参与人数 1吾爱币 +1 收起 理由
开创者 + 1 我很赞同!

查看全部评分

zt041512 发表于 2024-8-6 10:34
谢谢楼主分享,楼主辛苦了!
xueyinglantian 发表于 2024-8-6 10:55
谢谢分享哈,看起来很厉害
ssh66888 发表于 2024-8-6 11:01
能成功实现楼主最后一张图,然后改改那几个字,别的不会了,怎么实现第一张图那种效果?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 14:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表