为app创建excel的私人信息

时间:2016-10-29 18:23:30

标签: excel vba excel-vba userform

我正在使用Excel创建一个应用程序,所有用户交互都发生在用户表单中。我希望我的应用程序在excel的单独实例中运行,而不是已打开的任何其他文件,或者在我的应用程序运行时由用户手动打开的任何文件。我发现以下链接具有相关性和趣味性,但我不确定如何在我的应用程序中实现这一点:Answers.microsoft.com Can I create an instance of Excel that can only be accessed by my VBA project?

以下是我想要实现的方法:

我使用两个文件:StartFile.xlsb,SystemFile.xlsb

  1. 用户通过单击文件
  2. 正常打开StartFile
  3. 如果未启用宏,则StartFile的Sheet1会显示警告。
  4. 启用宏后,StartFile会检查excel版本等...
  5. 如果一切都很好StartFile然后在新的excel实例中打开SystemFile,并自行关闭
  6. SystemFile打开并以某种方式将其excel实例设为私有(使用“Application.IgnoreRemoteRequests = True”?)
  7. 澄清:用户根本无法与私有excel实例应用程序进行交互。它的.visible设置仍然是错误的。它用于显示用户表单,因此对于用户来说,这看起来像一个独立的应用程序

    旁注:无论宏安全设置如何,如何确保我的新Excel实例都启用了宏? (用户已经启用了一次宏)(到目前为止我还没有注意到这种情况,是吗?)

1 个答案:

答案 0 :(得分:-2)

你正在寻找这样的东西吗?

您无法更改宏安全设置,因为这会破坏具有这些设置的整个目的。或者,您可以正确搜索VBA模块以更改Windows注册表。

此外,如果您使用IgnoreRemoteRequests,请务必小心,然后每次都必须重新设置它。

**已编辑**隐藏SystemFile工作簿并只显示用户表单?然后在关闭用户窗体时关闭SystemFile工作簿。

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub

'UserForm module
Private Sub CommandButton1_Click()
Unload UserForm1
Application.Quit
End Sub