Vba 保存在所有演示文稿中保留值的变量

Vba 保存在所有演示文稿中保留值的变量,vba,powerpoint,Vba,Powerpoint,我想在powerpoint中创建一个变量,无论打开什么演示文稿,该变量都会保持不变 我以前使用ActivePresentation.CustomDocumentProperties创建过一个变量,它工作正常,但该变量是在演示文稿中创建的,因此当您打开一个新演示文稿时,您无法获得该值。我需要一些类似的东西,但使用应用程序表达式,这样无论打开什么演示文稿,您设置的值都是相同的 在powerpoint中可以这样做吗?要做到这一点,您需要将值保存到注册表中。虽然您可以调用WinAPI来实现这一点,但是如

我想在powerpoint中创建一个变量,无论打开什么演示文稿,该变量都会保持不变

我以前使用ActivePresentation.CustomDocumentProperties创建过一个变量,它工作正常,但该变量是在演示文稿中创建的,因此当您打开一个新演示文稿时,您无法获得该值。我需要一些类似的东西,但使用应用程序表达式,这样无论打开什么演示文稿,您设置的值都是相同的


在powerpoint中可以这样做吗?

要做到这一点,您需要将值保存到注册表中。虽然您可以调用WinAPI来实现这一点,但是如果您在Mac上运行代码,这会有点复杂,并且不起作用

相反,请使用内置的VBA SaveSetting和GetSetting命令

Sub Thing()

' Save some values to the registry:

SaveSetting "MyApp", "Settings", "MySetting1", "MyValue1"
SaveSetting "MyApp", "Settings", "MySetting2", "MyValue2"
SaveSetting "MyApp", "Settings", "MySetting3", "MyValue3"
' Saves Setting/Value pairs to
' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyApp\Settings

' Get one of the saved values:
Debug.Print GetSetting("MyApp", "Settings", "MySetting1")

' Get one of the saved values and return a default value if there's no such saved value:
Debug.Print GetSetting("MyApp", "Settings", "MySetting42", "The Answer To Life, Universe, et al")

' List
Dim lCount As Long
Dim MySettings As Variant

MySettings = GetAllSettings("MyApp", "Settings")

For lCount = LBound(MySettings, 1) To UBound(MySettings, 1)
    Debug.Print MySettings(lCount, 0), MySettings(lCount, 1)
Next

' Remove all of the settings:
DeleteSetting "MyApp", "Settings"


End Sub