3

ツールバー (ボタン付き) をプログラムで Excel (2002 以降) に追加するにはどうすればよいですか?

ボタンがクリックされたときに、ハンドラーで COM オブジェクトを作成し、メソッドを呼び出す必要がありますか?

4

2 に答える 2

7

これは、完全に異なるインターフェイスを持つ Excel 2007を含まないバージョンで動作するはずの何かの基礎です。

これは ThisWorkbook モジュールに入ります:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    DeleteCommandBar
End Sub
Private Sub Workbook_Open()
    ShowToolbar
End Sub

そして、これは同じモジュールまたは別のモジュールに入れることができますが、私はより見やすい独自のモジュールに入れることを好みます。OnClick は必要ありません。ボタンを作成するときに呼び出すルーチンがボタンに通知されます。

Private Const TOOLBARNAME = "MyFunkyNewToolbar"

Public Sub ShowToolbar()
' Assumes toolbar not already loaded '
    Application.CommandBars.Add TOOLBARNAME
    AddButton "Button caption", "This is a tooltip", 526, "NameOfASubInYourVBACode"
    ' call AddButton more times for more buttons '
    With Application.CommandBars(TOOLBARNAME)
        .Visible = True
        .Position = msoBarTop
    End With
End Sub

Private Sub AddButton(caption As String, tooltip As String, faceId as Long, methodName As String)
Dim Btn As CommandBarButton
    Set Btn = Application.CommandBars(TOOLBARNAME).Controls.Add
    With Btn
        .Style = msoButtonIcon
        .FaceId = faceId ' choose from a world of possible images in Excel: see http://www.ozgrid.com/forum/showthread.php?t=39992 '
        .OnAction = methodName
        .TooltipText = tooltip
    End With        
End Sub

Public Sub DeleteCommandBar()
    Application.CommandBars(TOOLBARNAME).Delete
End Sub
于 2009-02-27T13:02:28.137 に答える
2

ボタンと COM 呼び出しコードを含むツールバーを作成する Excel アドインを作成し、作成した .xla ファイルをユーザーのXLStart フォルダーにドロップできます。

于 2009-02-27T02:38:46.000 に答える