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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.07.2008, 12:40   #1
oTyler
 
Регистрация: 08.07.2008
Сообщений: 3
Стрелка Макрос set attribute file

Как макросом установить другому файлу статус ReadOnly и/или снять?

Перерыл всю справку - команда ReadOnly работает только на уровне безопасности в открытом файле, мне же надо сам файл залочить...

Спасибо всем подключившимся (чуть не добавил - к Матрице )...
oTyler вне форума
Старый 08.07.2008, 12:58   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, так:
Код:
Sub ReadOnly()

    Dim fso As FileSystemObject, f As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile("C:\Temp\test.xls")
    f.Attributes = 1
        
End Sub
Подставьте свой путь и имя файла. Для снятия атрибута "ReadOnly" - f.Attributes = 0.
Не забудьте подключить в VBE Tools -> References библиотеку "Microsoft Scripting Runtime".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 08.07.2008, 13:18   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Более корректно (чтобы не затрагивать другие атрибуты) следует поступить так:
Код:
Sub ReadOnly()

    Dim fso As FileSystemObject, f As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile("D:\Temp\sas.xls")
    If (f.Attributes And 1) = 0 Then f.Attributes = f.Attributes + 1
        
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 08.07.2008, 13:20   #4
oTyler
 
Регистрация: 08.07.2008
Сообщений: 3
По умолчанию

Великолепное вам спасибо!
Вы спасли как минимум 12 человек от неминуемой смерти за стертый реестр.
oTyler вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
File of... GreenDan Общие вопросы Delphi 4 25.08.2008 22:04
file of byte medikk Общие вопросы Delphi 1 11.08.2008 16:00
file exist TaTT DoGG Общие вопросы Delphi 4 16.05.2008 11:27
record/file potion Паскаль, Turbo Pascal, PascalABC.NET 3 10.05.2008 20:15
Проблемы с file HSALF Общие вопросы Delphi 3 21.06.2007 19:27