gpt4 book ai didi

vba - 使用 vba 在 PowerPoint 2007 中定位幻灯片上的图像

转载 作者:行者123 更新时间:2023-12-04 17:59:20 28 4
gpt4 key购买 nike

我想在 Windows 上的 PowerPoint 2007 中执行以下两项操作之一。

首先是更改图像中粘贴的默认位置。当我粘贴我用 SAS 制作的图表时,它会粘贴到左上角。理想情况下,我想更改默认粘贴位置。这似乎没有任何简单的选项,但我认为使用 VBA 可能是可行的。

如果不可能,那么我想编写一个 VBA 宏来遍历每张幻灯片并更改图像位置。

感谢这个网站和其他网站(MsgBox 只是一个测试),我得到了一个可以工作的幻灯片循环:

Sub SlideLoop()
Dim osld As Slide

For Each osld In ActivePresentation.Slides
osld.Select
MsgBox "The slide index of the current slide is: " & _
ActiveWindow.View.Slide.SlideIndex
Next osld

End Sub

除此之外,我没有太多运气。我看到过选择幻灯片上的所有图像并裁剪或调整它们大小的代码片段,我在 excelhelphq.com 上发现了这个用于定位图像的位:

With ActiveWindow.Selection.ShapeRange
.Left = 50 'change the number for desired x position
.Top = 50 'change the number for desired y position
End With

但我不确定如何将它集成到循环中,而且 Powerpoint VBA 的在线文档也不是特别可靠。一些代码处理 ShapeIndex,但我不确定如何使用它。

我应该提一下,当我有一张图片时,我在一张幻灯片上只有一张图片(尽管有些幻灯片根本没有图片)。

这似乎是最省时的方法,尽管我仍然首先手动粘贴到 PowerPoint 中。

我很感激任何帮助!我找不到任何可以解决这个确切问题的内容。

VBA for PPT 会被淘汰吗?感觉微软不希望人们能够根据他们不太出色的在线文档来弄清楚如何使用它。

最佳答案

MS 不太可能很快淘汰 VBA。如果他们这样做,太多的大公司客户会拒绝他们。尽管如此,您是对的,文档很糟糕,并且随着每个版本的发布而变得更糟。

让这样的地方变得更有值(value)。因此,首先对您的基本循环进行一些清理:

Sub SlideLoop()
Dim osld As Slide

For Each osld In ActivePresentation.Slides
' osld.Select No need to select a slide before acting on it
'MsgBox "The slide index of the current slide is: " & _
' ActiveWindow.View.Slide.SlideIndex
MsgBox "The slide index of the current slide is: " & cstr(osld.SlideIndex)
Next osld

End Sub

所以这里是如何做你想做的事情的开始:

Sub SlideLoop()
Dim osld As Slide
Dim oSh As Shape

For Each osld In ActivePresentation.Slides
' check each shape on the slide
' is it an image or whatever you're looking for?
For Each oSh In osld.Shapes
With oSh
If .Type = msoLinkedPicture _
Or .Type = msoPicture Then

' position it to taste
.Left = 100
.Top = 100

' centering/resizing gets trickier
' but is still possible.
' Exercise for the reader?
' Hint:
' ActivePresentation.PageSetup.SlideWidth and .SlideHeight
' tells you the width and height of the slide
'
' All values are in Points (72 to the inch)

End If
End With
Next ' Shape
Next osld ' Slide

End Sub

关于vba - 使用 vba 在 PowerPoint 2007 中定位幻灯片上的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com