من میخواستم بدونم ایا می شود به وسیله یک ماکرو ماکرو دیگه را حذف کرد و یا در ویژل بیسیک اکسل دستوری نوشت که بتواند قسمتی یا همه دستورات نوشته شده را حذف کند
حذف یک ماکرو به وسیله ماکرو دیگر
Collapse
X
-
حذف یک ماکرو به وسیله ماکرو دیگر
با سلام
من میخواستم بدونم ایا می شود به وسیله یک ماکرو ماکرو دیگه را حذف کرد و یا در ویژل بیسیک اکسل دستوری نوشت که بتواند قسمتی یا همه دستورات نوشته شده را حذف کندبرچسب ها: هیچکدام -
RE: حذف یک ماکرو به وسیله ماکرو دیگر
با سلام من میخوام در برنامه ام کاری کنم که یک تاریخ مشخص کنم و وقتی تاریخ سیستم به اون روز رسید یک سری از ماکرو ها یا دستوراتی که نوشته ام حذف گردد تا کاربر دیگر دسترسی به ان نداشته باشدکامنت
-
Re: حذف یک ماکرو به وسیله ماکرو دیگر
با درود فراوان
برای این کار می توانید این دستور را داخل رویداد اپن بوک بگذارید تا شیت مورد نظر شما مثلا شیت یک را حذف کند بدون اینکه اخطار دهد و شیت یک را با امنیت بالا مخفی کنید تا دیده نشود
حالا تمام ماکروهای که می خواهید در زمان مشخصی پاک شود داخل صفحه کد شیت یک بنویسید تا با پاک شدن آن شیت تمام ماکروهای مورد نظر شما نیز پاک شود
البته راهای زیادی برای این کار هست و یک سری از کدها هم هست که مستقیم خود ماکرو یا ماژول را پاک میکنه ولی نیاز هست که بعضی از دستورات کتاب خانه ای را فعال کنید که این خود مشکلی برای کاری است که مد نظر شماست
ولی ساده ترین راه این راهی بود که خدمت شما عرض کردم
کد PHP:Sub delet()
Application.DisplayAlerts = False
Sheet1.Delete
ActiveWorkbook.Save
End Sub
Last edited by ~M*E*H*D*I~; 2014/04/27, 14:13.---------------------------------------------------------------------------------------------------
بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
shamsololama@yahoo.com
09177733411کامنت
-
با سلام و خسته نباشید
ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر
- - - Updated - - -
منظورم اینه که با اجرای ماکروی شماره 2 ، ماکروی شماره یک کلا حذف بشه و به شیتها آسیبی نرسهکامنت
-
با سلام و خسته نباشید
ببخشید اگه من بخوام یه ماکرو رو از داخل یه ماژول حذف کنم باید چیکار کنم؟خواسته ی من هم مثله خواسته ی دوستمونه با این تفاوت که ماکروی من توی شیت نیست بلکه توی ماژول هست.با تشکر
- - - Updated - - -
منظورم اینه که با اجرای ماکروی شماره 2 ، ماکروی شماره یک کلا حذف بشه و به شیتها آسیبی نرسه
سلام دوست عزیز
همچین کاری امکان پذیر نیست. فقط میتونین از فایلتون خروجی xlsx بگیرین که کل ماکروها رو پاک کنهکامنت
-
با درود همانطور که جناب استاد شمس گفتن راه ساده این مطلب مان است که ایشان عرض کردند اما اگر همچنان اصرار به راه یکم پیچیده هستین پس شروع کنین
1- ابتدا در محیط ویژوال بیسیک از قسمت Tools و بعد reference تیک گزینه ی Microsoft Visual Basic For Applications Extensibility 5.3 رو بزنین و بعد اکی کنین.
حال دو حالت رو با هم برسی میکنیم
1- میخوایم کل کد های نوشته شده توی ماژول 1 رو پاک کنیم با یه کد VBA
حالت دوم میخوایم یه سری کد که توی ماژول 1 نوشته شده ( یک procedure توی یک ( module)) رو رو فقط پاک کنیم ، فرض procedure ما اسمش هست Sub amin() پس داریم :کد: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
هر چند هنوز هم با نظر استاد شمس موافقم ، فقط جهت اطلاع عرض شد .کد: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
در پناه خداوندگار ایران زمین باشید و پیروز
در پناه خداوندگار ایران زمین باشید و پیروزکامنت






کامنت