次のコマンドを実行します。
CallByName Worksheets("Sheet1"), "CommandButton21_Click", VbMethod
。なお、(デフォルトでは)Excelは、ボタンのワークシートにPrivate Sub
を作成します。これらのサブモジュールをモジュールから呼び出す場合は、Private
を削除する必要があります。また、サブの名前はがNameOfTheButton_Click
である必要があります。そのように
、上記のコードは、モジュール内のサブに常駐している場合、あなたはそれを動作させるにしたいシート上のコードは、(例えば)が考えられます。
Sub CommandButton21_Click()
MsgBox "gotcha"
End Sub
あなたが起動したい場合Sheet1
上のすべてのボタンのすべてのマクロは、次のコードを実行します:
Option Explicit
Public Sub tmpSO()
Dim Obj As OLEObject
For Each Obj In Worksheets("Sheet1").OLEObjects
If TypeName(Obj.Object) = "CommandButton" Then
CallByName Worksheets("Sheet1"), Obj.Name & "_Click", VbMethod
End If
Next Obj
End Sub
をもう一度、Sheet1
上の潜水艦のいずれもPrivate
されていないことを確認してください。さもなければ、これらのサブはモジュールから呼び出すことはできませんが、単にSheet1
にあるサブからも呼び出すことができます。
clickイベントを直接呼び出すことができないのはなぜですか? – Comintern
私はプロセスを自動化したい –