Excel打开文档历史日志 – AddIn
如果这个结果是通用的,那么提前道歉。 我已经做了一些研究,并绘制了一个完整的空白。
Excel很棒,我喜欢Excel。 如此多的“最近文档”部分对我来说几乎没有用处,因为我在疯狂的地点使用了许多电子表格。
我一直在研究一种打开(使用VBA作为AddIn)文件的方式。 即使它是一个简单的文本文件的date,但是我不知道如何让VBA代码“知道”,当一个文件被打开(其中,随着输出到一个文本文件,就是我想要的它在这个阶段做)。
有没有办法让VBA在Excel实例中寻找这个动作?
下面的步骤(从http://www.cpearson.com/excel/AppEvent.aspx的优秀post改编而来)是“最低限度可行”的方式来做你所需要的。
- 打开一个新的工作簿
- 打开VB编辑器
- 插入一个类模块; 在属性窗口中,将类名设置为
CExcelEvents
- 在类模块中添加以下代码:
私人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到一个文件)。 这听起来像你不需要帮助后者 – 如果我错了,请让我知道。