Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2009, 23:46   #1
SStone
Пользователь
 
Регистрация: 27.11.2008
Сообщений: 16
По умолчанию Проверка на файл!

Ребят, подскажите, как написать макрос проверки на файл?
К примеру, необходимо, чтобы при открытии экселевского файла, он проверял есть ли файл 1.exm папке С:/., если файл отсутсвует, то эксель не открывал данный файл или завершал работу!
Заранее благодарен!
SStone вне форума Ответить с цитированием
Старый 09.02.2009, 01:05   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Sub test()
    ПутьКФайлу = "C:\Documents and Settings\Игорь\Рабочий стол\данные.xls"
    If Dir(ПутьКФайлу) = "" Then Exit Sub   ' файл не найден

    On Error Resume Next: Set wb = Workbooks.Open(ПутьКФайлу)
    If wb Is Nothing Then Exit Sub    ' файл не открылся по какой-то причине
    ' ... работаем с открытой книгой
    wb.Close
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 09.02.2009, 06:12   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно чуть проще. Не проводить никакой проверки, а просто открывать требуемый файл, игнорируя возможную ошибку при отсутствии файла:
Код:
Private Sub Workbook_Open()
    On Error Resume Next: Workbooks.Open ("C:\Temp\test.xls")
End Sub
P.S. Этот код должен быть расположен в модуле "Эта книга".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 09.02.2009, 20:39   #4
SStone
Пользователь
 
Регистрация: 27.11.2008
Сообщений: 16
По умолчанию

Ребят , спасибо... Видимо я не корректно выразился...
Необходимо сделать так, чтобы Книга не смогла запуститься без определенного файла (имеющего заданное имя и расширение)! Т.е., так сказать, файла-ключа! Если его нет, то Книга не открывается!

P.S. EducatedFool, немного не разобрался с Вашим макросом!
SStone вне форума Ответить с цитированием
Старый 10.02.2009, 03:27   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Private Sub Workbook_Open()
    ФайлКлюч = "C:\config.xml" ' прописываем здесь полный путь к любому файлу'
    'если файл "ключа" не найден, то сразу же закрываем эту книгу
    If Dir(ФайлКлюч) = "" Then ThisWorkbook.Close False
End Sub
Книга Excel, содержащая этот макрос, будет сразу же закрываться при попытке открытия, если файл ключа "C:\config.xml" отсутствует.
EducatedFool вне форума Ответить с цитированием
Старый 11.02.2009, 18:14   #6
risen
Пользователь
 
Регистрация: 12.03.2008
Сообщений: 15
По умолчанию

При открытии файла экселя вылетает окно Предупреждения системы безопасности. Если в нем нажать "отключить макросы" то с файлом можно работать и без файла ключа. Как эсделать так чтобы макросы работали всегда и предупреждение не вылетало (не используя низкий уровень безоасности, так как на любом другом компе с уровнем выше среднего предупреждение будет срабатывать)?

Последний раз редактировалось risen; 11.02.2009 в 18:37.
risen вне форума Ответить с цитированием
Старый 11.02.2009, 20:44   #7
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

Чтобы с книгой нельзя было работать без макросов нужно скрыть листы перед закрытием книги и поставить на них повышенную скрытость.
А чтобы нельзя было их открыть зайдя в редактор надо проект тоже запаролить.
Но даже в этом случае я могу открыть файл Опенофисом и его раскурочить так как нужно мне лично.
Так, что если мечта об защите на интелектуальную собственность имеется, прощайся с ней заранее.
С другой стороны у меня тоже в файле защита строится на файле ключа.
Слава богу большая часть пользователей владеет экселем на уровне "чайника" и не может вскрыть даже просто спрятанные ярлычки листов, не то, что скрытый лист.
С другой стороны, на всех маломальски интересных программах имеются кряки или таблетки.
Так что если захотят сломать - сломают!
Вопрос только в том, кому оно вообще нужно.

Последний раз редактировалось КаМММ; 11.02.2009 в 20:48.
КаМММ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01
Проверка Манжосов Денис :) Общие вопросы Delphi 4 17.10.2008 16:27
Проверка орфографии Serg113 Microsoft Office Word 1 09.05.2008 22:29