Как средствами VBA ограничить количество запусков или использование до определенной даты файла Excel.
Было бы идеально, если этот файл уничтожался после временного ограничения.
Помогите с кодом, в VBA я не силен

Модератор: Naeel Maqsudov
Код: Выделить всё
Private Sub ExpirationDate()
'ВНИМАНИЕ !!!!
'ТЕСТИРОВАТЬ НА НЕНУЖНОМ ФАЙЛЕ
'ФАЙЛ САМ УДАЛИТЬСЯ, ЕСЛИ ДАТА В КОДЕ БУДЕТ РАНЬШЕ, ЧЕМ СЕГОДНЯШНЯЯ
If Date >= #8/1/2007# Then 'месяц/число/год - 1 Августа 2007г.
iFullName$ = ActiveWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True
SetAttr iFullName$, vbNormal: Kill iFullName$
ActiveWorkbook.Close saveChanges:=False
End If
End Sub
Код: Выделить всё
Private Sub Workbook_Open()
'ВНИМАНИЕ !!!!
'ТЕСТИРОВАТЬ НА НЕНУЖНОМ ФАЙЛЕ
'ФАЙЛ САМ УДАЛИТЬСЯ, ЕСЛИ НА "Лист1" В ЯЧЕЙКЕ "A1" ЗНАЧЕНИЕ БОЛЬШЕ 3
'Счётчик открытий
ThisWorkbook.Worksheets("Лист1").Range("A1").Value = _
ThisWorkbook.Worksheets("Лист1").Range("A1").Value + 1
ThisWorkbook.Save
Dim iFullName$
If ThisWorkbook.Worksheets("Лист1").Range("A1").Value > 3 Then 'Если в счётчике больше 3-х запусков
iFullName$ = ActiveWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True
SetAttr iFullName$, vbNormal: Kill iFullName$
ActiveWorkbook.Close saveChanges:=False
End If
End Sub
Но немного не понял. Объясните как это...AlexZZZ писал(а):То же самое, если пользователь отключит макросы. Правда во втором случае можно заставить его это сделать, показывая нужные листы только при включённых макросах.