在 PowerPoint 演示文稿时不会显示链接的图像和图像移动到一个新的驱动器


症状


在移动 Microsoft PowerPoint 演示文稿和图片链接到新的驱动器或文件夹位置到该演示文稿之后,图片是不可见的。相反,图片显示为占位符,即使该演示文稿所在的同一驱动器上的同一文件夹中的图片。

例如,您创建的演示文稿包含很多链接的图像,然后到可写式光盘 (CD-R) 编写它。从另一台计算机中的 CD R 打开演示文稿时,图像不是显示在演示文稿中,即使它们位于 CD-键。

原因


包含图片的文件夹已被移动。Microsoft Office PowerPoint 2007 中,PowerPoint 2003 中,PowerPoint 2002 使用绝对路径来查找链接的图像。如果驱动器号或路径更改时,不显示图像。这可能会在驱动器 C 创建一个演示文稿是写入到 CD-R 的根目录,然后打开从 CD-ROM 驱动器,通常是驱动器 d。以 C 开头的链接的图像的路径,因为图像打开演示文稿时都找不到。

解决方法


若要变通解决此问题,请使用下列方法之一。

方法 1: 使用"打包成 CD"或"打包"

当您希望在另一台计算机上运行演示文稿时,PowerPoint 可以将所有需要的文件放到一个文件夹或 CD 上的包。PowerPoint 2002 可以将所有需要的文件放入单个存档文件或跨越多个磁盘。然后解压缩的 PowerPoint 2002 包和转到目标计算机或网络共享上的文件,并运行该演示文稿。

当打包演示文稿时,您可以决定要在演示文稿中包含所有链接的文件。执行该操作时,PowerPoint 会将图片链接的绝对路径转换为相对的。也就是说,而不是被"C:\My 下 Pictures\image001.jpg"的路径,路径将成为"image001.jpg"。

打包演示文稿和相关的文件

PowerPoint 2007

若要使用 PowerPoint 2007 中的打包成 CD功能,请执行以下步骤:
  1. 打开您要打包成 CD 的演示文稿。
  2. 单击Microsoft Office 按钮Microsoft Office Button ,指向发布,然后单击打包成 CD
  3. 如果系统提示您确认对早期 PowerPoint 格式转换时,请单击确定
  4. 默认情况下,所有链接的文件都包含在打包的演示文稿。 单击复制到文件夹,或单击复制到 CD

    如果您单击复制到文件夹,请执行以下步骤:
    1. 文件夹名称框中,键入文件夹名称,然后单击浏览以找到该文件夹的目标位置。
    2. 单击选择,然后单击确定
    3. 单击以包含链接的文件与演示文稿一起。
    如果您单击复制到 CD,您必须准备好您的 CD 或 DVD 光盘驱动器中插入空白可写 CD。单击重试。完成 PowerPoint 刻录 CD 后,单击,当系统提示您将另一张 CD 刻录。
  5. 单击关闭
若要启动演示文稿,可以将光盘插入计算机,然后双击 CD 图标在 Windows 资源管理器,或者可以找到您在步骤 4 中创建的文件夹,然后在 PowerPoint 2007 中打开演示文稿。

PowerPoint 2003

若要使用 PowerPoint 2003 中的打包成 CD功能,请执行以下步骤:
  1. 打开您要打包成 CD 的演示文稿。
  2. 文件菜单上,单击打包成 CD
  3. 默认情况下,所有链接的文件都包含在打包的演示文稿。单击复制到文件夹,或单击复制到 CD

    如果您单击复制到文件夹,请执行以下步骤:
    1. 文件夹名称框中,键入文件夹名称,然后单击浏览以找到该文件夹的目标位置。
    2. 单击选择,然后单击确定
    3. 单击以包含链接的文件与演示文稿一起。
    如果您单击复制到 CD,您必须准备好您的 CD 或 DVD 光盘驱动器中插入空白可写 CD。单击重试。完成 PowerPoint 刻录 CD 后,单击,当系统提示您将另一张 CD 刻录。
  4. 单击关闭
若要启动演示文稿,可以将光盘插入计算机,然后双击 CD 图标在 Windows 资源管理器,或者可以找到您在步骤 4 中创建的文件夹,然后在 PowerPoint 2007 中打开演示文稿。

PowerPoint 2002

若要使用打包演示文稿以便在另一台计算机上运行,请执行以下步骤:

  1. 打开您要打包的演示文稿。
  2. 文件菜单上,单击打包
  3. 按照打包向导中的说明进行操作。

    当系统提示您输入要复制到哪个驱动器,单击选择目标,并浏览到临时文件位置。这是在打包演示文稿和相关的文件。单击下一步
  4. 选择包含链接的文件。此时,您可以选择与您的演示文稿中嵌入 TrueType 字体。单击下一步
  5. 不包括查看器。单击下一步,然后单击完成
然后可以将打包的文件和 Pngsetup.exe 程序复制到您选择的任何驱动器或网络共享。

PowerPoint 2002 演示文稿解包

若要查看您的演示文稿,必须转到包文件复制到的位置并将其解开。若要执行此操作,请执行以下步骤:

  1. 在 Microsoft Windows 资源管理器中,导航到打包的演示文稿的位置,然后双击Pngsetup
  2. 输入您要解压缩的文件的位置。
  3. 单击确定
将在所选的位置中解压缩演示文稿,请将链接的图片。

使用宏的代码来设置相对路径

Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于适销性或特定用途适用性的暗示担保。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能。但是,他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。
注意: 下面的宏示例仅在 PowerPoint 中起作用。Visual Basic for Applications Microsoft PowerPoint 播放器不支持宏。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

230746PPT: 查看器: 演示文稿宏无法运行查看器内


您可以使用宏将从绝对的链接转换为相对。这将使 PowerPoint 来定位图片根据演示文稿的当前所在的位置,只要图片在此相同的位置。

下面是一个代码示例,显示这无法自动在其中的一种方法。此代码示例假定该演示文稿和链接的图片是在相同的文件夹位置。如果他们不在同一个文件夹位置中,然后运行这段代码将断开到图片的链接。

示例代码

  1. 打开 Visual Basic 编辑器:

    PowerPoint 2007
    1. 单击视图选项卡。
    2. 组中单击
    3. 在宏名框中,键入RelPict ,然后单击创建
    PowerPoint 2003 中,PowerPoint 2002
    1. 工具菜单上,指向,,然后单击安全
    2. 单击中等的安全级别。单击确定
    3. 工具菜单上,指向,然后单击Visual Basic 编辑器
    4. 插入菜单上,单击模块
  2. 在模块中键入以下代码:
    Sub RelPict()
    Dim oSlide As Slide
    Dim oShape As Shape
    Dim lPos As Long
    Dim strLink As String
    '
    ' Loop through the presentation checking each shape
    ' on each slide to see if it is a linked picture.
    '
    For Each oSlide In ActivePresentation.Slides
    For Each oShape In oSlide.Shapes
    If oShape.Type = msoLinkedPicture Then
    With oShape.LinkFormat
    '
    ' Search from the right hand portion of the source
    ' filename and find the first backslash "\" character.
    '
    lPos = InStrRev(.SourceFullName, "\")
    '
    ' Check to see if the link has already been modified.
    '
    If lPos <> Null Then
    '
    ' Determine how long the filename is, by subtracting
    ' the position the "\" character was found at from
    ' the total length of the source file name.
    '
    lPos = Len(.SourceFullName) - lPos
    '
    ' Extract the filename from the source file name, then
    ' assign the filename to the source file name, turning
    ' it into a relative path.
    '
    strLink = Right(.SourceFullName, lPos)
    .SourceFullName = strLink
    End If
    End With
    End If
    Next oShape
    Next oSlide
    End Sub

状态


Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的故障。