⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comaddin.dsr

📁 《Wrox Excel 2003 VBA Programmers Reference》 (Jun.2004)的源码
💻 DSR
字号:
VERSION 5.00
Begin {AC0714F6-3D04-11D1-AE7D-00A0C90F26F4} COMAddin 
   ClientHeight    =   6840
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   7584
   _ExtentX        =   13377
   _ExtentY        =   12065
   _Version        =   393216
   Description     =   $"COMAddIn.dsx":0000
   DisplayName     =   "GetNumbers Wizard"
   AppName         =   "Microsoft Excel"
   AppVer          =   "Microsoft Excel 11.0"
   LoadName        =   "Startup"
   LoadBehavior    =   3
   RegLocation     =   "HKEY_CURRENT_USER\Software\Microsoft\Office\Excel"
End
Attribute VB_Name = "COMAddin"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

Private WithEvents Excel As Excel.Application
Attribute Excel.VB_VarHelpID = -1
Private WithEvents MenuButton As Office.CommandBarButton
Attribute MenuButton.VB_VarHelpID = -1
Const AddInTag As String = "MyAddinTag"

Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
  ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
  ByVal AddInInst As Object, custom() As Variant)

  On Error GoTo Catch
  Set Excel = Application
  MsgBox "Connected", vbInformation
  Call InsertToolButton(AddInInst)
  
  AddInInst.object = Me
  Exit Sub
  
Catch:
  MsgBox Err.Description, vbCritical

End Sub

Private Sub InsertToolButton(ByVal AddInInst As Object)
  Dim Toolbar As CommandBar
  Dim Button As CommandBarButton
  
  Set Toolbar = Excel.CommandBars("Worksheet Menu Bar") _
    .FindControl(ID:=30007).CommandBar
    
  On Error Resume Next

  Set Button = Toolbar.Controls("Sequence Wizard")
  If (Button Is Nothing) Then
    Set Button = Toolbar.Controls.Add(msoControlButton, , "SequenceWizard")
    Button.Caption = "Sequence Wizard"
    Button.Style = msoButtonCaption
    Button.Tag = AddInTag
    Button.OnAction = "!<" & AddInInst.ProgId & ">"
  End If
  
  Set Button = Nothing
  Set Button = Toolbar.Controls("GetNumbers Wizard")
  If (Button Is Nothing) Then
    Set Button = Toolbar.Controls.Add(msoControlButton, , "GetNumbersWizard")
    Button.Caption = "GetNumbers Wizard"
    Button.Style = msoButtonCaption
    Button.Tag = AddInTag
    Button.OnAction = "!<" & AddInInst.ProgId & ">"
  End If

  Set MenuButton = Button
  
End Sub

Private Sub AddinInstance_OnDisconnection( _
  ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
  custom() As Variant)

  Dim Control As CommandBarControl

  ' If excel is being closed by the user then remove the buttons
  If RemoveMode = ext_dm_UserClosed Then
    For Each Control In Excel.CommandBars.FindControls(Tag:=AddInTag)
      Control.Delete
    Next
  End If

  Set MenuButton = Nothing
  Set Excel = Nothing
  MsgBox "Disconnected", vbInformation

End Sub

Private Sub MenuButton_Click( _
  ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

  If TypeOf Excel.Selection Is Range Then
    Select Case Ctrl.Parameter
      Case "SequenceWizard"
        SequenceWizardForm.Show vbModal

      Case "GetNumbersWizard"
        GetNumbersWizardForm.Show vbModal
    End Select
  Else
    MsgBox "No range of cells is selected.", vbOKOnly, _
      "Excel 2003 Wizards"
  End If
End Sub

Public Property Get SimpleObject() As Simple
  Set SimpleObject = New Simple
End Property

Public Property Get ComplexObject() As Complex
  Set ComplexObject = New Complex
End Property

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -