複数のワークシートに機能を追加する VBA アドインがあります。ワークシート イベントをリッスンし、マクロをトリガーするクラスがあります。これは機能しますが、パラメーターを使用してプライベートマクロを呼び出すことができないようです。
私のイベントリスナーはクラスモジュールにあり、これは次のとおりです。
Option Explicit
Private WithEvents App As Application
Private Sub Class_Initialize()
Set App = Application
End Sub
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Source As Range)
On Error GoTo Finish
App.EnableEvents = False
Call Application.Run("Worksheet_Change", "Source")
Finish:
App.EnableEvents = True
End Sub
モジュールでワークブックを開くと、次のように初期化されます。
Sub Auto_Open()
Set clsAppEvents = New clsApplicationEvents
End Sub
そして、私が呼び出そうとしているマクロは、再び別のモジュールにあり、次の形式を取ります。
Private Sub Worksheet_Change(ByVal Target As Range)
'Do some work on range
End Sub
マクロを呼び出す次の方法を試しましたが、これまでのところ機能していません。
Call Application.Run("Worksheet_Change", "Source")
Application.Run "Worksheet_Change", "Source"
Application.Run "Worksheet_Change" "Source"