VBA で簡単な Excel アドインを作成しました。フォームと関連コードが含まれています。アドインとして保存し、Excel にインストールした後、何も起こりませんでした。
アドインをトリガーするボタンをリボンのどこかに配置する必要があります。「ソルバー」などです。本当に必要なのですが、方法を教えてください。
どんな提案でも本当に感謝しています。
これを試してください。モジュールまたは ThisWorkbook のいずれかで、アドインに追加する必要があります。
Private Const Button as String = "SomeName"
Sub Auto_Open 'Or Private Sub Workboo_Open() in ThisWorkbook
Dim CmdBar as CommandBar
Dim CmdBarMenu as CommandBarControl
Dim CmdBarMenuItem as CommandBarControl
Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
Set CmdBarMenu = CmdBar.Controls("Tools") ' Index 6
On Error Resume Next
Application.DisplayAlerts = False
CmdBarMenu.Controls(Button).Delete 'Just in case a button with same name already exists
Application.DisplayAlerts = True
On Error GoTo 0
Set CmdBarMenuItem = CmdBarMenu.Controls.Add(Type:=msoControlButton)
With CmdBarMenuItem
.Caption = Button
.OnAction = "MainSub" 'Name of the sub it will call when button is pushed
End With
End Sub
Excel を閉じるときにボタンを必ず削除してください。そうしないと、アドインを開くたびに追加のボタンが追加されます。
Sub Auto_Close 'Or Private Sub Workbook_BeforeClose(Cancel As Boolean) in ThisWorkbook
Dim CmdBar as CommandBar
Dim CmdBarMenu as CommandBarControl
Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
Set CmdBarMenu = CmdBar.Controls("Tools") ' Index 6
On Error Resume Next
Application.DisplayAlerts = False
CmdBarMenu.Controls(Button).Delete
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
ボタンから実行したい作成したサブ。
Public Sub MainSub
MsgBox("Hello")
End Sub
アドイン リボンにリスト ボックスを追加して、複数のボタンを保持することもできます。最初に MenuItem を type:=msoControlPopup として作成し、次に上記のようにポップアップ内にボタンを追加します。
この VBA コードと同様に、[ファイル] -> [オプション] -> [リボンのカスタマイズ] に移動し、新しいグループを含む新しいタブを追加して、そのグループにマクロを割り当てる方がはるかに簡単です。しかし、それはあなたにしか機能しません.上記のコードは、誰でもアドインをインストールし、開くときにボタンを自動化できるようにします.
これがあなたの質問に答えることを願っています。