پرفروش ترين
برترين
آخرين محصولات فروشگاه
فایل الکترونیکی آموزش اکسل پیشرفته ۲۰۱۰
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: افزودن Case Menu به راست کلیک در ورک شیت

  1. #1
    mokaram آنلاین نیست.
    مدير تالار اکسل و بانک اطلاعاتی


    محصولات کاربر

    ويدئوي ايجاد سطح دسترسي
    آخرین بازدید
    2023/04/20
    تاریخ عضویت
    February 2011
    محل سکونت
    ســــاوه
    نوشته ها
    1,812
    امتیاز
    6436
    سپاس
    8,165
    سپاس شده
    5,190 در 1,505 پست
    سطح اکسل
    74.00 %

    mokaram به Yahoo ارسال پیام

    Star افزودن Case Menu به راست کلیک در ورک شیت

    با سلام خدمت دوستان با افزودن کد های زیر تو یک ماژول ، منوی Case Menu به راست کلیک در ورک شیت اضافه میشه جالبه
    کد:
    Sub AddToCellMenu()
        Dim ContextMenu As CommandBar
        Dim MySubMenu As CommandBarControl
        Call DeleteFromCellMenu
        Set ContextMenu = Application.CommandBars("Cell")
    
        ContextMenu.Controls.Add Type:=msoControlButton, ID:=3, before:=1
        With ContextMenu.Controls.Add(Type:=msoControlButton, before:=2)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "ToggleCaseMacro"
            .FaceId = 59
            .Caption = "Toggle Case Upper/Lower/Proper"
            .Tag = "My_Cell_Control_Tag"
        End With
    
        Set MySubMenu = ContextMenu.Controls.Add(Type:=msoControlPopup, before:=3)
    
        With MySubMenu
            .Caption = "Case Menu"
            .Tag = "My_Cell_Control_Tag"
    
            With .Controls.Add(Type:=msoControlButton)
                .OnAction = "'" & ThisWorkbook.Name & "'!" & "UpperMacro"
                .FaceId = 100
                .Caption = "Upper Case"
            End With
            With .Controls.Add(Type:=msoControlButton)
                .OnAction = "'" & ThisWorkbook.Name & "'!" & "LowerMacro"
                .FaceId = 91
                .Caption = "Lower Case"
            End With
            With .Controls.Add(Type:=msoControlButton)
                .OnAction = "'" & ThisWorkbook.Name & "'!" & "ProperMacro"
                .FaceId = 95
                .Caption = "Proper Case"
            End With
        End With
    
        ContextMenu.Controls(4).BeginGroup = True
    End Sub
    
    Sub DeleteFromCellMenu()
        Dim ContextMenu As CommandBar
        Dim ctrl As CommandBarControl
    
        Set ContextMenu = Application.CommandBars("Cell")
    
        For Each ctrl In ContextMenu.Controls
            If ctrl.Tag = "My_Cell_Control_Tag" Then
                ctrl.Delete
            End If
        Next ctrl
    
        On Error Resume Next
        ContextMenu.FindControl(ID:=3).Delete
        On Error GoTo 0
    End Sub
    
    Sub ToggleCaseMacro()
        Dim CaseRange As Range
        Dim CalcMode As Long
        Dim cell As Range
    
        On Error Resume Next
        Set CaseRange = Intersect(Selection, _
            Selection.Cells.SpecialCells(xlCellTypeConstants, xlTextValues))
        On Error GoTo 0
        If CaseRange Is Nothing Then Exit Sub
    
        With Application
            CalcMode = .Calculation
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
            .EnableEvents = False
        End With
    
        For Each cell In CaseRange.Cells
            Select Case cell.Value
            Case UCase(cell.Value): cell.Value = LCase(cell.Value)
            Case LCase(cell.Value): cell.Value = StrConv(cell.Value, vbProperCase)
            Case Else: cell.Value = UCase(cell.Value)
            End Select
        Next cell
    
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = CalcMode
        End With
    End Sub
    
    Sub UpperMacro()
        Dim CaseRange As Range
        Dim CalcMode As Long
        Dim cell As Range
    
        On Error Resume Next
        Set CaseRange = Intersect(Selection, _
            Selection.Cells.SpecialCells(xlCellTypeConstants, xlTextValues))
        On Error GoTo 0
        If CaseRange Is Nothing Then Exit Sub
    
        With Application
            CalcMode = .Calculation
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
            .EnableEvents = False
        End With
    
        For Each cell In CaseRange.Cells
            cell.Value = UCase(cell.Value)
        Next cell
    
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = CalcMode
        End With
    End Sub
    
    Sub LowerMacro()
        Dim CaseRange As Range
        Dim CalcMode As Long
        Dim cell As Range
    
        On Error Resume Next
        Set CaseRange = Intersect(Selection, _
            Selection.Cells.SpecialCells(xlCellTypeConstants, xlTextValues))
        On Error GoTo 0
        If CaseRange Is Nothing Then Exit Sub
    
        With Application
            CalcMode = .Calculation
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
            .EnableEvents = False
        End With
    
        For Each cell In CaseRange.Cells
            cell.Value = LCase(cell.Value)
        Next cell
    
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = CalcMode
        End With
    End Sub
    
    Sub ProperMacro()
        Dim CaseRange As Range
        Dim CalcMode As Long
        Dim cell As Range
    
        On Error Resume Next
        Set CaseRange = Intersect(Selection, _
            Selection.Cells.SpecialCells(xlCellTypeConstants, xlTextValues))
        On Error GoTo 0
        If CaseRange Is Nothing Then Exit Sub
    
        With Application
            CalcMode = .Calculation
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
            .EnableEvents = False
        End With
    
        For Each cell In CaseRange.Cells
            cell.Value = StrConv(cell.Value, vbProperCase)
        Next cell
    
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = CalcMode
        End With
    End Sub
    و کد های زیر را هم تو قسمت های مشخص شده بنویسید
    کد:
    Private Sub Workbook_Activate()
    Call AddToCellMenu
    End Sub
    
    
    Private Sub Workbook_Deactivate()
     Call DeleteFromCellMenu
    End Sub
    حالا سیو کرده و یک بار فایل را بسته و مجدد اجرا کرده و روی یکی از سل ها راست کلیک کنید
    پیروز باشید
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.



  2.  


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 6
    آخرين نوشته: 2016/05/24, 11:54
  2. افزودن آیتم به کومبو باکس از طریق اطلاعات سل های شیت
    توسط Almasi در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 17
    آخرين نوشته: 2015/08/26, 22:10
  3. Upper &lowe&proper case در ویژوال
    توسط امين اسماعيلي در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 3
    آخرين نوشته: 2013/05/17, 18:26
  4. Select Case
    توسط komeilex در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 0
    آخرين نوشته: 2012/08/08, 17:28
  5. درخواست ایجاد انجمنی جدید برای دانلود جزوات مفید آموزشی
    توسط farzin24622 در انجمن انتقادات و پیشنهادات خود را در این اتاق ثبت کنید
    پاسخ ها: 4
    آخرين نوشته: 2012/01/07, 10:13

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد