【问题标题】:User input to select powerpoint presentation用户输入以选择 powerpoint 演示文稿
【发布时间】:2017-08-15 06:09:59
【问题描述】:

我创建了一个宏来帮助需要经常更新的 PowerPoint 演示文稿。

而不是每次我想在单独的演示文稿中创建一个按钮时都进入 Visual Basic 编辑器并导入宏,这将提示用户单击宏需要处理的演示文稿。类似于拥有一个只有一个按钮的 Excel 文档来处理工作簿。

下面是我在 excel 中执行类似操作的代码(让用户单击工作表并在工作表上激活和运行宏)。

Dim uiSheet As Worksheet

On Error Resume Next
    Set uiSheet = Application.InputBox("Select a cell on the key sheet.", Type:=8).Parent
On Error GoTo 0

If uiSheet Is Nothing Then
    MsgBox "Cancelled"
ElseIf MsgBox("You Selected " & Chr(34) & uiSheet.Name & Chr(34) & ", Proceed?", vbOKCancel + vbQuestion, "Accept/Reject") = vbCancel Then
    MsgBox "Cancelled"
    Exit Sub
End If

uiSheet.Activate

我宁愿避免创建加载项,以便宏的未来用户(不一定是我)可以使用它并且超级简单,并且不必导入加载项。

或者,如果有人有更好的主意,我会全神贯注。对于不知道如何使用开发人员选项卡的人,您将如何创建需要在新演示文稿中运行的 powerpoint 宏?

【问题讨论】:

  • 如果代码不需要经常更新,插件是最好的,因为你可以让你的自定义子被自定义 UI 调用,无论是在它自己的功能区/“主页”内。您可以有一个单独的 pptm 来首次安装和加载插件。
  • 嗯,这可能是真的,我会考虑把它做成一个加载项,但我还是更喜欢用一个按钮保持简单,因为这是我所有的格式其他 excel 宏和使用这些宏的人并不总是最快的学习者
  • 为避免使用加载项,您必须将代码放在单独的 PPTM 中并培训用户打开您的 PPTM,按 Alt+F8,选择“从所有打开的演示文稿”并然后双击您希望它们运行的​​宏。这可能会违反安全限制,阻止他们首先打开 PPTM 或在其中运行宏。加载项需要您多做一些工作才能安装到用户的计算机上,但会为他们提供一键式(通常在功能区上)完成工作的方式。

标签: vba powerpoint


【解决方案1】:

在所有用户都将使用的 PPTM 文件中的幻灯片中插入一个操作按钮。 单击时将其分配为运行宏。您只能在幻灯片放映视图

中执行此部分

在“插入”选项卡上,单击“形状”,然后在“操作按钮”(底部)下,单击要添加的按钮形状。 单击幻灯片上的某个位置,然后拖动以绘制按钮的形状。 在“操作设置”对话框的“鼠标单击”选项卡中。选择运行宏

这里有一些代码可以使用 Windows 资源管理器让他们选择演示文稿,然后打开它:

  With Application.FileDialog(msoFileDialogFilePicker)
       .AllowMultiSelect = False  'only allows the user to select one file
        ' Set the title of the dialog box.
      .Title = "Select the File."  'Put any text to help the user choose the correct file
        'clear filters then add pptx filter
      .Filters.Clear
      .Filters.Add "PowerPoint files", "*.pptx"   ' This can be any file extension to filter the choices 
        ' Show the dialog box. If the .Show method returns True, the
        ' user picked at least one file. If the .Show method returns
        ' False, the user clicked Cancel.
      If .Show = True Then
        fxname = .SelectedItems(1) 
      End If
   End With
 Set opres = Presentations.Open(fxname, False, False, True) 'opres is the variable for the choosen file
 opres.Windows(1).Activate  'Activates that presentation.

然后添加更新宏的其余部分。

是的,用户必须打开宏文件,但他们可以运行宏来非常轻松地更新所选演示文稿。

【讨论】:

  • 哦,这是一些很棒的代码。不过,我想更多的是点击一个已经打开的 powerpoint。
  • 然后只需将操作按钮添加到演示文稿和宏代码。演示文稿必须是 pptm 文件。或者您可以让按钮打开其中包含宏的演示文稿并运行宏。
  • 不幸的是,这不是一个选择,否则我肯定会这样做。我想要一个单独的宏演示的原因是原来的将是一个无宏的ppt
猜你喜欢
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 2019-11-15
  • 2016-05-10
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 2010-10-03
相关资源
最近更新 更多