Excelアドインを作成しています。これは、このようなモジュールでは、いくつかの機能で構成されていますExcel AddinのMacroOptionsを設定するタイミング
Public Function MyFunctionOne(X As Range, Y As Double) As Double
MyFunctionOne = 1 'Example
End Function
Public Function MyFunctionTwo(X As Range, Y As Double) As Double
MyFunctionTwo = 2 'Example
End Function
Public Function MyFunctionThree(X As Range, Y As Double) As Double
MyFunctionThree = 3 'Example
End Function
私は.xlam
エクセルアドインとして全体を保存しました。したがって、これらの機能は、毎回新しいスプレッドシートを開始するたびに利用できます。
私は最近、カテゴリに機能を割り当てることができたことを知りました。これは本当に役に立ちます。これにより、Excelファンクションウィザードから簡単に使用できます。私はカテゴリを割り当てるには、次のコードを使用します。
Public Sub MyRegister()
Application.MacroOptions Macro:="MyFunctionOne", Description:="Returns 1", Category:="My New Category"
Application.MacroOptions Macro:="MyFunctionTwo", Description:="Returns 2", Category:="My New Category"
Application.MacroOptions Macro:="MyFunctionThree", Description:="Returns 3", Category:="My New Category"
End Sub
を今、私は手動でマクロ、MyRegister
を実行した場合、関数はすべて新しいカテゴリを取得し、それは非常によく動作します。しかし、新しいスプレッドシートを作成するたびに手動でマクロを実行する必要はありません。私の質問は、アドインが新しいスプレッドシートごとにどのようにこれを自動的に行うのですか?
私はこのようなアドインのWorkbook_Open
でそれを入れてみました:
Private Sub Workbook_Open()
Call MyRegister
End Sub
問題は、それが動作しないということです。 Excelが起動するたびに、エラーメッセージ "Cannot edit a macro on a hidden workbook."が表示されますので、Workbook_Open
イベントはこれを行う場所が間違っているようです。
私の質問は、適切な時間にMyRegister
マクロを実行して、アドイン機能をカテゴリに割り当てる方法です。
ところで、私は本当にテンプレートを作りたくありません。私は本当にこれを唯一のものとして保つべきです。
ありがとうございます!