2015-01-15 88 views
1

我使用Excel电子表格中的数据填充PowerPoint幻灯片。目前,我正在使用页码访问幻灯片:如何获取主布局幻灯片名称

Set mySlide = PowerPointApp.ActivePresentation.Slides(1) 

使用用户界面中的主视图选项,可以重命名幻灯片。我怎样才能找到使用该名称的幻灯片?

谢谢,

卡罗。

+0

我不清楚你想做什么...找到一个具有特定名称的幻灯片或具有某个名称的布局,或者找到当前幻灯片基于的布局的名称。 ActivePresentation.Slides(“Carlo”)将返回对名为“Carlo”的幻灯片的引用......如果有的话。 – 2015-01-15 15:50:09

+0

我希望能够为每张幻灯片指定一个唯一的名称(通过PPT UI),然后能够使用在Excel中运行的脚本使用该名称查找幻灯片。每个幻灯片都有一个UniqueID参数,但是如果我们将幻灯片从一个演示文稿复制到另一个演示文稿,我仍然需要将幻灯片“XYZ”识别为相同的东西,但我怀疑UniqueID值是否随幻灯片一起移动。 – Carlo 2015-01-16 16:19:01

回答

0

使用Slide.Name属性将定义幻灯片的名称,并允许它使用被称为:

ActivePresentation.Slides("Name") 

per the MSDN

+0

但是,如何通过UI设置Slide.Name属性?我有一个PPT演示文稿,我将其用作模板。我需要为每个现有页面以及添加的任何新页面设置Name属性。 – Carlo 2015-01-16 16:14:31

+0

您只能通过代码访问幻灯片名称;如果您需要将其公开给用户,则必须提供UI。如果需要简单地为每张幻灯片创建全局唯一ID(而不是对给定的演示文稿ID唯一),则可能会生成和分配GUID作为幻灯片名称的代码。 – 2015-01-17 21:19:21

0

所以,我想要的是一种方法,通过唯一标识一个PPT幻灯片VBA。问题是,如果它被复制到另一个PPT文档,我仍然需要能够识别该幻灯片。

所以,我发现我需要做的就是:

  • 每个页面和硬编码上创建一个文本框是这样的文字“幻灯:盖”或“幻灯片:QuarterlyResults”等
  • 循环通过每张幻灯片
  • 找到“幻灯片:”并将其去掉以获得页面标题。这样,如果幻灯片被复制到另一个PPT文档,该名称将与它一起使用。
  • 创建一个使用Slide.SlideID作为键和页面标题作为值的词典。

然后我所做的是循环浏览幻灯片,获取SlideID,使用Dictionary获取页面标题并使用Select语句映射到正确的方法来处理幻灯片。

是的,我知道...这是一个恶作剧的黑客,但这是我能想到的唯一办法。

感谢您的帮助,

卡罗。

+0

首先提供问题的所有细节会节省您一些时间,也许这可以为您节省一些工作:查找。标签每张幻灯片都可以拥有尽可能多的标签(名称/值对)没有必要重新发明你在上面提出的方向盘。 ;-) – 2015-01-20 15:18:09

+0

感谢您的回复,史蒂夫。当我第一次开始这个时,我认为布局会给我所需要的。我是一个PowerPoint新手。当我深入了解它时,我意识到它不会。 我抬起头。标签,但没有看到我怎么能通过用户界面“标记”幻灯片。 (我错过了什么?)我需要产生幻灯片的人能够给它一个独特的名字,然后我可以通过代码访问。 – Carlo 2015-01-21 15:44:48