2

Windows用のMicrosoftExcel2010を使用しています。

addin.xlam私はすでにサブを含むアドインを開発しましたmainaddin.xlamメニューから表示および選択できるように、適切な場所にありますDeveloper -> Add-Ins。通常のブックを開いてtest.xlsmを押すと、のコードが読み込まれAlt + F11ていることがわかります。addin.xlam

私の目的は、Excelのメニューバーに単一のメニュー項目を追加して、ユーザーがを起動できるようにすることmainですadd-in.xlam。このリンクをたどると、私のコードaddin.xlamは次のようになります。

Option Explicit
Dim cControl As CommandBarButtonPrivate
Sub Workbook_AddinInstall()
    On Error Resume Next 'Just in case

    'Delete any existing menu item that may have been left.
    Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete

    'Add the new menu item and Set a CommandBarButton Variable to it
    Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add

    'Work with the Variable
    With cControl
        .Caption = "Super Code"
        .Style = msoButtonCaption
        .OnAction = "main" 'Macro stored in a Standard Module
    End With
    On Error GoTo 0
End Sub

Private Sub Workbook_AddinUninstall()
    On Error Resume Next 'In case it has already gone.
    Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete
    On Error GoTo 0
End Sub

このコードはのに適切に配置されてThisWorkbookおりaddin.xlam、にも表示されtest.xlsmます。しかし、メニューバーに変化は見られません。

誰かが何が起こるか知っていますか?

4

2 に答える 2

4

AddinInstallおよびAddinUninstallイベントは、Excelアドインマネージャーを使用してアドインが「インストール」または「アンインストール」された場合にのみ発生します。

私見では、これは問題を引き起こす可能性があるため、代わりにWorkbook_OpenイベントとWorkbook_BeforeCloseイベントを使用することを常にお勧めします。

于 2012-07-27T10:06:37.410 に答える
0

チャールズは正しいです、あなたはに置き換える必要がありWorkbook_AddinInstall()Workbook_Open()そしてに置き換える必要Workbook_AddinUninstall()がありますWorkbook_BeforeClose()

さらに、あなたはする必要はありCommandBarButtonませんCommandBarButtonPrivate

幸運を!

于 2014-03-23T10:37:57.303 に答える