Microsoft UIエディタを使用してExcelのリボンをカスタマイズし始めました。私はOnRibbonLoadサブルーチンを使用して、スプレッドシートを開いたときにデフォルト値で編集ボックスとチェックボックスを初期化しようとしています。私のOnLoadRibbonサブルーチンが呼び出されていない
Public MyRibbonUI As IRibbonUI
Private Sub OnRibbonLoad(ribbonUI As IRibbonUI)
Set MyRibbonUI = ribbonUI
GBLDelimited = True
MsgBox "Hello"
'script to set global variable values to be used as default values
End Sub
しかし、私は、私が開発していスプレッドシートにそれを使用するときに、それはしていないように:私が本当に奇妙な発見だと、私は、テストのスプレッドシートに次のコードを使用し、それがうまく働いたということですまったく呼ばれる。サブルーチンが呼び出されていることをテストするために追加したMsgbox行。私のテストスプレッドシートでは、開かれた直後に "Hello"メッセージが表示され、サブルーチンが呼び出されていることを示唆しています。しかし、メッセージは他のスプレッドシートには表示されません。
この問題は、(行頭でデフォルト値を設定しようとしている)チェックボックスのonActionコールバックサブルーチンでこの行を実行しようとすると、「ランタイムエラー91」が発生することに直接関係している疑いがあります。
MyRibbonUI.InvalidateControl ("checkBoxTest")
と私は本当にcheckBoxが正しくラベル付けされていると確信しています。
OnRibbonLoadサブルーチンが同じコードが使用されているにもかかわらず、1つのスプレッドシートで動作し、別のスプレッドシートで動作しない理由を説明できる人はいますか?