ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: gareth

[求助] PPT 批量插入图片代码

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-18 19:56 | 显示全部楼层

图的次序乱了。不是从1.jpg~20.jpg

TA的精华主题

TA的得分主题

发表于 2020-10-19 08:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gareth 发表于 2020-10-18 19:56
图的次序乱了。不是从1.jpg~20.jpg

如果图片名都是数字,可以先排序再批量插入

Excel ppt.zip

1.47 MB, 下载次数: 83

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-19 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Yalishanda30 发表于 2020-10-19 08:44
如果图片名都是数字,可以先排序再批量插入

再次感谢,帮了我大忙。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-22 16:24 | 显示全部楼层

ActivePresentation.ApplyTheme PowerPoint.ActivePresentation.Path & "\New.potx" '换新的母版

老师,更换新母版,只能是当前路径么,可否指定路径?如
"c:\New.potx"

TA的精华主题

TA的得分主题

发表于 2020-10-22 17:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gareth 发表于 2020-10-22 16:24
ActivePresentation.ApplyTheme PowerPoint.ActivePresentation.Path & "\New.potx" '换新的母版

老师 ...

当然可以,你自己测试

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-22 19:39 | 显示全部楼层
Yalishanda30 发表于 2020-10-22 17:31
当然可以,你自己测试

ActivePresentation.ApplyTheme & "c:\New.potx"
ActivePresentation.ApplyTheme PowerPoin & "c:\New.potx"
都不行呀

TA的精华主题

TA的得分主题

发表于 2020-10-23 16:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gareth 发表于 2020-10-22 19:39
ActivePresentation.ApplyTheme & "c:\New.potx"
ActivePresentation.ApplyTheme PowerPoin & "c:\New.p ...

你C盘根目录有模板文件吗?应该是这样 ActivePresentation.ApplyTheme  "c:\New.potx"

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-23 16:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Yalishanda30 发表于 2020-10-23 16:04
你C盘根目录有模板文件吗?应该是这样 ActivePresentation.ApplyTheme  "c:\New.potx"

谢谢!的确如此。
有空帮我关注一下另外一个贴子呀,竟然0人看!
http://club.excelhome.net/thread-1560299-1-1.html

TA的精华主题

TA的得分主题

发表于 2023-2-12 18:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 zzpsx 于 2023-2-12 19:27 编辑

感谢高手,您的代码真的太厉害了,解决了我多年的困惑。毕竟ppt自带的插入相册来插入图片步骤太多。

弱弱地问下,想要得到附件中想要的效果,您的代码如何修改,主要是修改图片在ppt中的坐标?谢谢。


想要的效果.rar (1.41 MB, 下载次数: 12) 目前代码的效果.rar (1.1 MB, 下载次数: 11)

Sub InsertPicture()
Dim oPPT As Presentation
Dim oSlide As Slide
Dim oCL As CustomLayout
Dim Shp As Shape
Dim myFile
Dim filearr()
Set oPPT = PowerPoint.ActivePresentation
sPath = PowerPoint.ActivePresentation.Path & "\pic\"
myFile = Dir(sPath & "*.png")
Do While myFile <> ""
    ReDim Preserve filearr(i)
    filearr(i) = myFile
    i = i + 1
    myFile = Dir
Loop

With oPPT
    For i = 0 To UBound(filearr)
        Set oCL = .Slides(1).CustomLayout
        Set oSlide = .Slides.AddSlide(i + 2, oCL)
        Set Shp = oSlide.Shapes.AddPicture(sPath & filearr(i), msoFalse, msoTrue, 71, -21, 579, 584)
    Next
End With
MsgBox "完成"
End Sub

是不是修改红色的?

TA的精华主题

TA的得分主题

发表于 2023-4-5 08:58 | 显示全部楼层
dd.jpg
  1. Private Sub del()
  2.     Dim Rng As Range
  3.     Dim Sht As Worksheet
  4.     ''
  5.     Dim Ppt As PowerPoint.Application
  6.     Dim Pres As Presentation
  7.     Dim Sld As Slide
  8.    
  9.         Set Rng = Selection
  10.         ''
  11.         Set Sht = Rng.Parent
  12.         Set Rng = Sht.Cells(Rng.Row, 1).Resize(Rng.Rows.Count, 1)
  13.         ''
  14.         Set Ppt = New PowerPoint.Application
  15.         Ppt.Visible = msoTrue
  16.         If Ppt.Presentations.Count = 0 Then
  17.              Set Pres = Ppt.Presentations.Add
  18.              Set Sld = Pres.Slides.Add(1, ppLayoutBlank)
  19.         Else
  20.              Set Pres = Ppt.ActivePresentation
  21.              Set Sld = Pres.Slides(1)
  22.         End If
  23.         'Debug.Print Pres.PageSetup.SlideHeight, Pres.PageSetup.SlideWidth
  24.         For ii = Pres.Slides.Count To 1 Step -1
  25.               Pres.Slides(ii).Delete
  26.         Next ii
  27.         For ii = 1 To Rng.Rows.Count
  28.             Set Sld = Pres.Slides.Add(ii, ppLayoutBlank)
  29.             ExcelInsertPicture Pres, Sld, Rng(ii, 1)
  30.         Next ii
  31. End Sub
  32. Function ExcelInsertPicture(Pres As Presentation, Sld As Slide, Rng As Range)
  33.    Debug.Print Sld.Name, Rng.Address, Rng(, 1), Rng(, 2), Rng(, 3)
  34.    Dim Shp 'As Shape
  35.            Set Shp = Sld.Shapes.AddPicture(Rng(, 1), msoFalse, msoTrue, 0, 0, Rng(, 2), Rng(, 3))
  36.            'Debug.Print Shp.Width, Shp.Height
  37.            With Shp
  38.                .Width = .Width * 0.2
  39.                .Height = .Height * 0.2
  40.                .Top = (Pres.PageSetup.SlideHeight - .Height) / 2
  41.                .Left = 20
  42.            End With
  43. End Function
复制代码


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 17:29 , Processed in 0.048785 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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