TPE

http://bayanbox.ir/view/263405954590585756/2mobile.png

Tavvafi@gmail.com


≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

در ماکروی زیر نام ماکروی هدف به صورت یک متغییر تعیین و اجرا شده است.

این روش برای هنگامی که چند ماکرو با عملکردهای مختلف وجود داشته باشد، و بنا بر شرایط خاص برنامه نویس تصمص می گیرد که کدامیک از ماکروها اجرا شوند.

این قابلیت حتی می تواند به صورت اسامی ماکروها در یک آرایه مورد استفاده واقع شود.

Sub MacrifyUs(oSh As Shape)
Dim sMacroName As String
sMacroName = "MyMacroName"
On Error Resume Next
With oSh.ActionSettings(ppMouseClick) ' or ppMouseOver
.Run = sMacroName
End With
End Sub
Sub MyMacroName()
MsgBox "MyMacroName"
End Sub

Sub MacrifyUs()

   Dim oSh as Shape
   Dim sMacroName as String

   ' Edit this; change the name of the macro in quotes to your macro's name
   sMacroName = "MyMacroName"

   ' No fancy error handling; just ignore errors
   On Error Resume Next

   For Each oSh In ActiveWindow.Selection.ShapeRange

      With oSh.ActionSettings(ppMouseClick) ' or ppMouseOver if you prefer
         .Run = sMacroName
         .Action = ppActionRunMacro
      End With

   Next

End Sub