Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使vba powerpoint自动运行工作?_Vba_Powerpoint - Fatal编程技术网

如何使vba powerpoint自动运行工作?

如何使vba powerpoint自动运行工作?,vba,powerpoint,Vba,Powerpoint,因此,我编写了一些代码,从excel工作表导入数据,并从中创建一个漂亮的powerpoint。现在,我遇到的问题是,makro需要在打开powerpoint文件后手动执行。我环顾四周,在PowerPoint中自动运行vba脚本似乎有点棘手。显然你可以下载一个插件,但这只会影响我的powerpoint版本,并且需要任何想要使用该文件的人也下载插件,对吗?如果不使用外接程序,任何帮助都将受到重视,并且用户参与有限,可以采用以下方法 在演示文稿中添加一张空白幻灯片。(其他的可以暂时隐藏起来。) 使用“

因此,我编写了一些代码,从excel工作表导入数据,并从中创建一个漂亮的powerpoint。现在,我遇到的问题是,makro需要在打开powerpoint文件后手动执行。我环顾四周,在PowerPoint中自动运行vba脚本似乎有点棘手。显然你可以下载一个插件,但这只会影响我的powerpoint版本,并且需要任何想要使用该文件的人也下载插件,对吗?如果不使用外接程序,任何帮助都将受到重视,并且用户参与有限,可以采用以下方法

  • 在演示文稿中添加一张空白幻灯片。(其他的可以暂时隐藏起来。)
  • 使用“插入”选项卡添加形状(或图片)
  • 在形状仍处于选定状态的情况下,从相同的“插入”选项卡中选择“操作”。这将允许在单击按钮/形状时选择要运行的宏
  • 该形状只能使宏在幻灯片放映运行时运行

  • 添加一个文本框,该文本框清楚地指示用户按F5运行显示,然后单击按钮
  • 与直接运行主宏不同,可以创建一个辅助宏来运行主宏,但也可以退出当前正在运行的幻灯片放映。比如说,

    Sub Test()
        Call MainMacro
    
        ActivePresentation.SlideShowWindow.View.Exit
    End Sub
    
    Sub MainMacro()
        MsgBox "Doing stuff"
    End Sub
    
    辅助宏还可以取消隐藏现有幻灯片:

    ActivePresentation.Slides(2).SlideShowTransition.Hidden = msoFalse
    
    与修改现有演示文稿不同,这些步骤可以创建为一个单独的演示文稿,只需一张幻灯片。这里的复杂之处在于,主演示文稿需要从可靠的位置打开


    此帮助器演示文稿还可以另存为启用PowerPoint宏的演示文稿(pppsm)。

    有一个答案建议您可以使用/M开关创建一个快捷方式,打开演示文稿并运行宏。您仍然需要说服人们将快捷方式放在桌面上,并且它必须指向正确的文件位置。或者,为什么不让演示文稿打开一张空白幻灯片,幻灯片上有一个大按钮来运行宏(使用动作)?第二个选项可能会起作用,但我不需要一个脚本来创建该按钮吗?编辑:如果我不想进入演示模式您不需要脚本来创建按钮,只需将其插入幻灯片,然后选择“操作”来选择要运行的宏。是的,他们必须切换到演示模式。您可以添加一些清晰的说明“按F5,然后单击按钮”。我想宏也可以扩展,一旦完成,它就会弹出演示模式。PowerPoint的任何版本都无法识别自动打开的宏,除了作为加载项的一部分。除了那个小小的狡辩,回答得好!向上投票。@SteveRindsberg谢谢,我已经删除了那个声明。