1

Access VBA Editor で独自のツールバー ボタン (commandbarbutton) を作成しようとしています。「RunTests」と呼ばれる公開モジュールでプロシージャを実行するためのボタンです。私はボタンを次のようにしました:

Public Sub CreateToolbar()
    Dim cmdBar As CommandBar
    Dim cmdButton As CommandBarButton
    Set cmdBar = Application.VBE.CommandBars.Add("Run Tests")
    Set cmdButton = cmdBar.Controls.Add(msoControlButton)
    cmdButton.FaceId = 558
    cmdButton.DescriptionText = "Run the tests"
    cmdButton.Caption = "Run Tests"
    cmdButton.OnAction = "RunTests"
    cmdButton.Enabled = True
    cmdButton.Style = msoButtonIconAndCaption
    cmdBar.Visible = True
End Sub

テストとして手順を実行しました。そして、それはボタンをうまく作成しました。しかし、「クリック」アクションは反応しません。ボタンはクリックできないようです。理由を知っている人はいますか?

編集: 解決策を見つけました: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q280607 - できるだけ早く自分の質問に答えて閉じます。

4

3 に答える 3

2

私にとっての鍵は、「RunTests」を公開サブルーチンにすることでした。プライベートの時はダメでした。

cmdButton.OnAction = "=RunTests()"

public sub RunTests()

private sub RunTests()動作しません。

于 2015-01-20T18:02:12.557 に答える
0

解決策を見つけました - それを機能させるには、ここで説明されている回避策を実装する必要があります: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q280607

于 2013-02-01T00:00:10.537 に答える
0

残念ながら、私は気を利かせて、ボタンとメニューをクラスで定義しようとしました。OnAction サブルーチンは、クラスの一部としてローカルに定義されている間は実行されませんでした。クラス定義の外で定義された場合にのみ実行されます。

多くのサブルーチンと関数を含む単なるモジュールになるようにクラスを再定義すると、OnAction サブルーチンが実行されました。スコープと可視性に関係している可能性があります。または、クラス メソッドの呼び出しに対して OnAction セマンティクスが正しくなかった可能性があります。要点は、モジュールでボタン/メニュー/ウィジェットを定義することであり、はるかに簡単になります。(Excel VBAを使っていましたが、AccessもExcel VBAも同じだと思います。)

于 2015-05-28T22:47:44.993 に答える