如何强制 Excel 加载项在首次启动时加载默认设置

How to force Excel add-in to load default settings on FIRST start up

我正在开发一个小型 Excel 插件供公司内部使用。我对某些程序的设置有疑问。

我的宏中的一些变量具有可修改的设置,例如,将数字格式更改为用户定义格式的宏,或某些宏的快捷方式。我有专门用于这些设置的用户表单,我 save/read 他们 to/from Windows 使用这些表单进行注册。用户还可以设置默认设置 - 这是一个带有 SaveSetting/GetSetting 个程序的简单系统。

但是,我在启动时加载设置时遇到问题。我需要加载项在第一次启动时加载默认设置,然后在下次加载项启动时加载用户设置。我知道如何加载默认设置,但我想不出一种方法来加载默认设置一次,然后加载用户修改的设置(更改或默认,取决于他们通过上述用户表单的选择)。现在我只知道如何在每次加载加载项时加载默认设置...

有没有人遇到过这样的问题愿意帮忙?

第一次加载加载项时,它会在注册表中创建一个键,其值为 True。加载加载项时,会在 Workbook_Open() 事件中检查该特定键。如果它不存在(或者它是 False 如果您有时需要重置加载项),将加载默认设置...

Private Sub Workbook_Open()
 Dim regValue As String, MyApp As String, myKey As String, keyValue As String
  MyApp = "MyAddin": myKey = "add_default": keyValue = "Default"
  regValue = GetSetting(MyApp, myKey, keyValue, "No value")
  If regValue <> "No value" Then
        If CBool(regValue) = True Then GoTo Continue
        'load default settings
        SaveSetting MyApp, myKey, keyValue, "True"
  Else
        'load default settings
        SaveSetting MyApp, myKey, keyValue, "True"
  End If
Continue:
  'your code without loading default
  '.....
End Sub

由于我目前的特权,我无法对您的 post 发表评论。

但是看看你的问题:

  1. 第一次,您可以将默认设置存储在加载项本身中,您将在加载加载项的事件 ThisAddIn_Startup 中调用。
  2. 然后您根据需要以两种方式存储设置: 2.1.如果它是与其他人共享的常规设置,那么当管理员设置初始设置时,您最好使用 INI 文件 来存储设置。 2.2.如果是每个用户设置,那么您最好将它们存储在注册表中: 2.2.a。在第一次设置时创建密钥的位置 2.2.b。使用最近创建的密钥存储用户设置。
  3. 然后下次加载应用程序时,您使用 ThisAddIn_Startup 检查密钥是否已创建: 3.1.如果是,那么您只需读取存储的设置。 3.2.如果否,那么您将再次开始第 2 步。

希望对您有所帮助!