PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : حذف یک ماکرو به وسیله ماکرو دیگر



mr.siahatgar
2011/04/16, 12:59
با سلام
من میخواستم بدونم ایا می شود به وسیله یک ماکرو ماکرو دیگه را حذف کرد و یا در ویژل بیسیک اکسل دستوری نوشت که بتواند قسمتی یا همه دستورات نوشته شده را حذف کند

4017
2011/04/16, 23:07
با سلام
ميشه بفرمايي دقيقا چه كاري مد نظرته كه ميخواي ماكرويي رو حذف كني؟

mr.siahatgar
2011/04/17, 12:41
با سلام من میخوام در برنامه ام کاری کنم که یک تاریخ مشخص کنم و وقتی تاریخ سیستم به اون روز رسید یک سری از ماکرو ها یا دستوراتی که نوشته ام حذف گردد تا کاربر دیگر دسترسی به ان نداشته باشد

shamsololama
2011/04/21, 18:43
با درود فراوان
برای این کار می توانید این دستور را داخل رویداد اپن بوک بگذارید تا شیت مورد نظر شما مثلا شیت یک را حذف کند بدون اینکه اخطار دهد و شیت یک را با امنیت بالا مخفی کنید تا دیده نشود
حالا تمام ماکروهای که می خواهید در زمان مشخصی پاک شود داخل صفحه کد شیت یک بنویسید تا با پاک شدن آن شیت تمام ماکروهای مورد نظر شما نیز پاک شود

البته راهای زیادی برای این کار هست و یک سری از کدها هم هست که مستقیم خود ماکرو یا ماژول را پاک میکنه ولی نیاز هست که بعضی از دستورات کتاب خانه ای را فعال کنید که این خود مشکلی برای کاری است که مد نظر شماست
ولی ساده ترین راه این راهی بود که خدمت شما عرض کردم

Sub delet()
Application.DisplayAlerts = False
Sheet1.Delete
ActiveWorkbook.Save
End Sub

Yaamahdiadrekni
2017/09/28, 08:57
با سلام و خسته نباشید
ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر

- - - Updated - - -

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

Amir Ghasemiyan
2017/09/28, 10:05
با سلام و خسته نباشید
ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر

- - - Updated - - -

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

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

امين اسماعيلي
2017/11/07, 00:04
با درود همانطور که جناب استاد شمس گفتن راه ساده این مطلب مان است که ایشان عرض کردند اما اگر همچنان اصرار به راه یکم پیچیده هستین پس شروع کنین

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




هر چند هنوز هم با نظر استاد شمس موافقم ، فقط جهت اطلاع عرض شد .

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