رخداد BeforeRightClick کاربرگ (اکسل)

رخداد BeforeRightClick وقتی که یک کاربرگ راست کلیک می‌شود، قبل از اینکه اقدام پیش‌فرض راست کلیک اجرا شود، فعال می‌گردد.

دستور اجرا

expression.BeforeRightClick (Target , Cancel)

expression متغیری است که یک شی Worksheet را نمایندگی می‌کند.

آیا می‌دانید:

آیا می‌دانید که تسلط بر ماکرونویسی و دستورات VBA در اکسل به شما این امکان را می‌دهد که با استفاده از ویژوال بیسیک، عملکرد خود را در انجام کارهای روزمره به طرز قابل توجهی بهبود ببخشید؛ به طوری که با ایجاد نمونه کدهای شخصی‌سازی‌شده، می‌توانید به‌راحتی کارهای تکراری را انجام دهید و در نتیجه، وقت بیشتری برای انجام وظایف مهم‌تر داشته باشید؟

پارامتر‌ها

ناماجباری/اختیارینوع دادهتوضیحات
TargetاجباریRangeنزدیکترین سلول به نشانگر ماوس هنگام دوبار کلیک کردن.
CancelاجباریBooleanهنگام وقوع رویداد نادرست است. اگر رویه رویداد این آرگومان را روی True تنظیم کند، عمل راست کلیک پیش‌فرض پس از اتمام رویه انجام نمی‌شود.

مقدار بازگشتی

ندارد.

ملاحظات

شبیه سایر رخدادهای کاربرگ، رویداد BeforeRightClick زمانی که نشانه‌گر ماوس روی یک شکل یا نوار ابزار (نوار ابزار یا نوار منو) راست کلیک نمایید، فعال نخواهد شد.

ویدئوی آموزشی

مثال

کد زیر با استفاده از رخداد BeforeRightClick یک دستور جدید با عنوان Fill Series به منوی راست کلیک اکسل اضافه می‌کند. با کلیک روی منوی انتخاب شده استایل سلول‌های محدوده انتخابی عوض شده و مقدار آنها به ترتیب از یک تا آخرین سلول تکمیل می‌شود.


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim icbc As Object
    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.Tag = "iv-menu" Then icbc.Delete
    Next icbc
    With Application.CommandBars("cell").Controls.Add(Type:=msoControlButton, before:=6, temporary:=True)
        .Caption = "Fill Series"
        .OnAction = Me.Name & ".ivFillSeries(" & Chr(34) & Target.Address & Chr(34) & ")"
        .Tag = "iv-menu"
    End With
End Sub

Sub ivFillSeries(rangeAddress As String)
Dim rng As Range
Dim cell As Range
Dim i As Integer
    Set rng = Me.Range(rangeAddress)
    With rng
        .Interior.Color = RGB(255, 217, 102)
        .Font.Name = "Arial"
        .Font.Color = vbBlack
        .Borders.Color = vbBlack
        .Borders.Weight = xlThick
    End With
    i = 1
    For Each cell In rng
        cell.Value = i
        i = i + 1
    Next cell
End Sub

دیدگاهتان را بنویسید