从Developer |加载插件时的奇怪行为AddIns功能区......
观察加载项的Auto_Open过程首先触发,但是WHILE显示该消息框(在正常情况下暂停执行等待用户输入 - 释放MsgBox),功能区的onLoad事件也会触发(显然是在点击第一个消息框中的任何位置时),同时显示另一个消息框!
你有没有看到同时显示两个消息框?这些不是无模式显示的用户形式,它们是简单的MsgBox提示。
有什么可以解释这种行为?什么可以阻止它?
奇怪的是,一旦加载了加载项,事件就会被我考虑的事情触发"正常"顺序顺序:首先是Auto_open,然后是onLoad,但只有在您解除了第一个msgbox后才会这样。
Ribbon OnLoad程序:
'This procedure hooks to the ChartBuilder_PPT Add-in menu
Option Private Module
Option Explicit
Private rib As IRibbonUI
''Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)
MsgBox "RibbonOnLoad"
Set rib = ribbon
'Call UPDATE(rib)
End Sub
在另一个模块中,
Option Explicit
Const AddInName As String = "ChartBuilder_PPT.ppam"
Const ShortName As String = "ChartBuilder_PPT"
Sub Auto_Open()
MsgBox "Auto_Open"
Call UnloadCB
End Sub
Sub Auto_Close()
Call UnloadCB
End Sub
Sub UnloadCB()
If AddInExists Then
Application.AddIns(ShortName).Loaded = msoFalse
Else
End If
Function AddInExists() As Boolean
Dim a As AddIn
For Each a In Application.AddIns
If a.Name = ShortName Then
AddInExists = True
a.AutoLoad = msoCTrue
Exit For
End If
Next
End Function