3

vba コマンドを呼び出すカスタム リボンがあります。その場合、エラーメッセージが表示されます

Microsoft Access cannot run the macro or callback function [FUNCTION OR SUB]

は、呼び出して[FUNCTION OR SUB]いる関数またはサブ名です。

上記のメッセージを生成するコードの例は次のとおりです。

Public Function OnButtonPress2(ctl As IRibbonControl)

    MsgBox "OnButtonPress2"

End Function

OnButtonPress2ボタンのリボンの XML ファイルで呼び出される場所

onAction="OnButtonPress2

上記はマクロで機能するため、リボンの xml ではない可能性があります

======== バージョン 2 以下に示す XML とモジュールを使用して、新しい単純なテスト データベースを作成しました。

それぞれの結果は次のとおりです。

Macro1 - 正常に動作します (ポップアップ メッセージが表示されます)。

CommandOnAction2 - msgbox "この関数のコンパイル中にエラーが発生しました"

OnButtonPress2 - msgbox "Microsoft Access はマクロまたはコールバック関数 'OnButtonPress2' を実行できません

「Public gobjRibn As IRibbonUI」という行で、IRibbonUI がオートコンプリートされないため、追加する必要がある参照があると思われます

XML (リボン名は NewRibbon で、起動時に開くように設定されています)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="tab1" label="Your Custom Tab">

<group id="group1" label="Your Custom Group">
<button id="SampleButton" label="Macro1" onAction="Macro1" />
<button id="SampleButton2" label="CommandOnAction2" onAction="=CommandOnAction2()"  />
<button id="SampleButton3" label="OnButtonPress2" onAction="OnButtonPress2"  />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

モジュール (名前は modRibbon)

Option Compare Database

Public gobjRibn As IRibbonUI

Public Function CommandOnAction2(ByVal ctl As IRibbonControl)
    MsgBox "Function CommandOnAction2"
End Function

Public Sub OnButtonPress2(ByVal ctl As IRibbonControl)
    MsgBox " Sub OnButtonPress2"
End Sub
4

1 に答える 1