حذف یک ماکرو به وسیله ماکرو دیگر

Collapse
X
 
  • زمان
  • Show
Clear All
new posts
  • mr.siahatgar

    • June 2010
    • 13

    حذف یک ماکرو به وسیله ماکرو دیگر

    با سلام
    من میخواستم بدونم ایا می شود به وسیله یک ماکرو ماکرو دیگه را حذف کرد و یا در ویژل بیسیک اکسل دستوری نوشت که بتواند قسمتی یا همه دستورات نوشته شده را حذف کند
  • 4017

    • October 2010
    • 114

    #2
    RE: حذف یک ماکرو به وسیله ماکرو دیگر

    با سلام
    ميشه بفرمايي دقيقا چه كاري مد نظرته كه ميخواي ماكرويي رو حذف كني؟
    اگر تنهاترين تنهايان شوم بازهم خدا هست،
    او جانشين تمام نداشته هاي من است...!

    Comment

    • mr.siahatgar

      • June 2010
      • 13

      #3
      RE: حذف یک ماکرو به وسیله ماکرو دیگر

      با سلام من میخوام در برنامه ام کاری کنم که یک تاریخ مشخص کنم و وقتی تاریخ سیستم به اون روز رسید یک سری از ماکرو ها یا دستوراتی که نوشته ام حذف گردد تا کاربر دیگر دسترسی به ان نداشته باشد

      Comment

      • shamsololama

        • February 2010
        • 940

        #4
        Re: حذف یک ماکرو به وسیله ماکرو دیگر

        با درود فراوان
        برای این کار می توانید این دستور را داخل رویداد اپن بوک بگذارید تا شیت مورد نظر شما مثلا شیت یک را حذف کند بدون اینکه اخطار دهد و شیت یک را با امنیت بالا مخفی کنید تا دیده نشود
        حالا تمام ماکروهای که می خواهید در زمان مشخصی پاک شود داخل صفحه کد شیت یک بنویسید تا با پاک شدن آن شیت تمام ماکروهای مورد نظر شما نیز پاک شود

        البته راهای زیادی برای این کار هست و یک سری از کدها هم هست که مستقیم خود ماکرو یا ماژول را پاک میکنه ولی نیاز هست که بعضی از دستورات کتاب خانه ای را فعال کنید که این خود مشکلی برای کاری است که مد نظر شماست
        ولی ساده ترین راه این راهی بود که خدمت شما عرض کردم
        کد PHP:
         Sub delet()
        Application.DisplayAlerts False
        Sheet1
        .Delete
        ActiveWorkbook
        .Save
        End Sub 
        Last edited by ~M*E*H*D*I~; 2014/04/27, 13:13.
        ---------------------------------------------------------------------------------------------------
        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
        shamsololama@yahoo.com
        09177733411

        Comment

        • Yaamahdiadrekni

          • September 2017
          • 7

          #5
          با سلام و خسته نباشید
          ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر

          - - - Updated - - -

          منظورم اینه که با اجرای ماکروی شماره 2 ، ماکروی شماره یک کلا حذف بشه و به شیتها آسیبی نرسه

          Comment

          • Amir Ghasemiyan

            • September 2013
            • 4475

            #6
            نوشته اصلی توسط Yaamahdiadrekni
            با سلام و خسته نباشید
            ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر

            - - - Updated - - -

            منظورم اینه که با اجرای ماکروی شماره 2 ، ماکروی شماره یک کلا حذف بشه و به شیتها آسیبی نرسه

            سلام دوست عزیز
            همچین کاری امکان پذیر نیست. فقط میتونین از فایلتون خروجی xlsx بگیرین که کل ماکروها رو پاک کنه

            Comment

            • امين اسماعيلي
              مدير تالار ويژوال بيسيك

              • January 2013
              • 1198

              #7
              با درود همانطور که جناب استاد شمس گفتن راه ساده این مطلب مان است که ایشان عرض کردند اما اگر همچنان اصرار به راه یکم پیچیده هستین پس شروع کنین

              1- ابتدا در محیط ویژوال بیسیک از قسمت Tools و بعد reference تیک گزینه ی
              Microsoft Visual Basic For Applications Extensibility 5.3 رو بزنین و بعد اکی کنین.

              حال دو حالت رو با هم برسی میکنیم
              1- میخوایم کل کد های نوشته شده توی ماژول 1 رو پاک کنیم با یه کد VBA
              کد:
                 Sub DeleteModule()
                  
                      Dim VBProj As VBIDE.VBProject
                      Dim VBComp As VBIDE.VBComponent
                  
                      Set VBProj = ActiveWorkbook.VBProject
                      Set VBComp = VBProj.VBComponents("Module1") ' change it to your specific module
                      VBProj.VBComponents.Remove VBComp
                  End Sub
              حالت دوم میخوایم یه سری کد که توی ماژول 1 نوشته شده ( یک procedure توی یک ( module)) رو رو فقط پاک کنیم ، فرض procedure ما اسمش هست Sub amin() پس داریم :

              کد:
              Sub DeleteProcedureFromModule()
                      Dim VBProj As VBIDE.VBProject
                      Dim VBComp As VBIDE.VBComponent
                      Dim CodeMod As VBIDE.CodeModule
                      Dim StartLine As Long
                      Dim NumLines As Long
                      Dim ProcName As String
                      
                      Set VBProj = ActiveWorkbook.VBProject
                      Set VBComp = VBProj.VBComponents("Module1") ' change it to your specific module
                      Set CodeMod = VBComp.CodeModule
                  
                      ProcName = "amin" ' the name of your specific procedure
                      With CodeMod
                          StartLine = .ProcStartLine(ProcName, vbext_pk_Proc)
                          NumLines = .ProcCountLines(ProcName, vbext_pk_Proc)
                          .DeleteLines StartLine:=StartLine, Count:=NumLines
                      End With
                  End Sub
              هر چند هنوز هم با نظر استاد شمس موافقم ، فقط جهت اطلاع عرض شد .

              در پناه خداوندگار ایران زمین باشید و پیروز


              در پناه خداوندگار ایران زمین باشید و پیروز

              Comment

              Working...