如何使用 VBA 在 Powerpoint 中定义形状?

发布于 2024-12-04 18:45:54 字数 345 浏览 1 评论 0原文

这是一个基本且简单的问题,但无法在网络上找到答案或好的教程。 显然无法在此 Office 帮助中找到它。

我正在使用 VBA 中的宏来生成 Powerpoint。 该代码包括复制 Powerpoint 文档的模板幻灯片,将 Excelline 的值分配到 PPT 模板的定义形状中。

问题是:我不知道如何像前面的代码中那样定义形状:

PptDoc.Slides(iSlide).Shapes("URL").TextFrame.TextRange = VerbatimSheet.Cells(i, 2).Value

如何定义“url”形状?在模板中还是在Excel的VBA宏中?

It's a basic and easy question but no way to find the answer or a good tutorial in the web.
And obviously no way to find it in this Office Help.

I'm using a macro in VBA to generate a Powerpoint.
The code constists in copying a template slide of a Powerpoint Document assigning value of an Excelline into the defined shape of the PPT template.

The question is: I have no idea as to define the shape like in this previous code :

PptDoc.Slides(iSlide).Shapes("URL").TextFrame.TextRange = VerbatimSheet.Cells(i, 2).Value

How can I define the "url" shape? In the template or in the VBA Macro of Excel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一抹微笑 2024-12-11 18:45:54

例如,您可以使用对象的索引

Dim shp as shape
Set shp=pptdoc.slides(islide).shapes(1)
shp.textframe.textrange= foo

You can use índex of object for example

Dim shp as shape
Set shp=pptdoc.slides(islide).shapes(1)
shp.textframe.textrange= foo
_畞蕅 2024-12-11 18:45:54

在 ppt 幻灯片模板中,为您的形状命名为“URL” - 在 ppt 中命名形状不像在(例如)xl 中那么容易,但可以做到。

只需在 ppt VB 编辑器的直接窗口中输入此内容(选择形状)并按 Enter 键:

ActiveWindow.Selection.shaperange(1).Name = "URL"

您可以通过输入以下内容来检查它是否有效:

? ActiveWindow.Selection.shaperange(1).Name 'should get "URL"

In the ppt slide template, give your shape the name "URL" - not as easy to name shapes in ppt as in (eg) xl, but it can be done.

Just enter this in the immediate window of the ppt VB editor (with the shape selected) and hit enter:

ActiveWindow.Selection.shaperange(1).Name = "URL"

You can check it worked by entering:

? ActiveWindow.Selection.shaperange(1).Name 'should get "URL"
庆幸我还是我 2024-12-11 18:45:54

这两个答案是正确的,对我理解这个非常基本的步骤有很大帮助
这对我来说是一个很好的教训,谢谢

第一个代码是解决问题的时尚方法
它的优点是通过默认名称定义形状并将其直接链接到我在代码内分配的值。

第二种是帮助初学者编程的好方法,但需要两个宏。
一份在 Excel 中,一份在 ppt 中,并允许手动更改形状的名称。
它的优点是可以帮助准确地可视化您正在使用和需要控制的形状。

非常感谢你们俩!

The two answers are correct and helps me a lot to understand this very basic step
It's a great lesson for me thanks

The first code is the stylish way to get ride of the problem
It has the advantage of defining by defaut a name to a shape and link it directly to the value I'm assigning to inside the code.

The second is a good way to help a beginner in programming but requires two macro.
One in the Excel and one in the ppt and allow to change the name of the shapes manually.
It has the advantage to help visualize exactly the shape you are using and you need to control.

Thank a lot to both of you!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文