Excel打开文档历史日志 – AddIn

如果这个结果是通用的,那么提前道歉。 我已经做了一些研究,并绘制了一个完整的空白。

Excel很棒,我喜欢Excel。 如此多的“最近文档”部分对我来说几乎没有用处,因为我在疯狂的地点使用了许多电子表格。

我一直在研究一种打开(使用VBA作为AddIn)文件的方式。 即使它是一个简单的文本文件的date,但是我不知道如何让VBA代码“知道”,当一个文件被打开(其中,随着输出到一个文本文件,就是我想要的它在这个阶段做)。

有没有办法让VBA在Excel实例中寻找这个动作?

下面的步骤(从http://www.cpearson.com/excel/AppEvent.aspx的优秀post改编而来)是“最低限度可行”的方式来做你所需要的。

  1. 打开一个新的工作簿
  2. 打开VB编辑器
  3. 插入一个类模块; 在属性窗口中,将类名设置为CExcelEvents
  4. 在类模块中添加以下代码:
    私人WithEvents应用程序作为应用程序

     Private Sub Class_Initialize()
        设置App =应用程序
         MsgBox“初始化class级!”
    结束小组

     Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
         MsgBox“新build工作簿已打开:”&Wb.Name
    结束小组

5.右键单击项目浏览器中的“ThisWorkbook”元素,然后select“查看代码”
6.添加下面的代码:

 Private XLApp As CExcelEvents Private Sub Workbook_Open() Set XLApp = New CExcelEvents End Sub 

这将创build一个CExcelEvents类的实例,并在加载addIn时“打开事件处理”。

最后,将文件保存为myEvents.xlam的addIns存储位置 – 这取决于您的机器…

如果您现在closures文件,并添加addIn(同样取决于您的环境,无论是从开发人员function区还是工具菜单),您应该看到一个对话框“初始化类!”。 这显示addIn已正确安装并正在工作。

现在,当您打开一个工作簿时,会出现另一个消息框:名称为“New Workbook was opened:”。

显然,你会想摆脱消息框,并放入一些“有用”的代码,做任何你想做的事情(例如,将工作簿的名称logging到一个文件)。 这听起来像你不需要帮助后者 – 如果我错了,请让我知道。