powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS как узнать, открыт ли файл.
12 сообщений из 12, страница 1 из 1
VBS как узнать, открыт ли файл.
    #38153738
Рыжий Пёс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Вопрос, может быть, простой, но я вчера ответ на него нигде не нашёл.
Есть скрипты, которые заполняют данными файл экселя. Если файла не существует, открывается заготовка и сохраняется под именем ИмяФайла , если существует, то должен открыться ИмяФайла .
Как узнать (в VBS), открыт ли уже ИмяФайла ?
Большая просьба не посылать меня на MSDN :)
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38153793
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рыжий Пёс,
- найти все запущенные экземпляры Excel
- подключиться к каждому
- проверить наличие в коллекции workbooks файла ИмяФайла

Средствами native VBS нерешаемо.
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38153797
Рыжий Пёс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
короче говоря, проще переложить ответственность на юзера.
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38153806
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Пёсесли существует, то должен открыться ИмяФайла .Вот тут у вас формулировочка "плавает". Наверное, всё же "запустить Excel и открыть этот файл, либо должно активизироваться окно экземпляра Excel с открытым файлом"? И тогда сразу же становится понятно, что скрипту требуется взаимодействие со сторонней программой...
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38154409
Рыжий Пёс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMРыжий Пёсесли существует, то должен открыться ИмяФайла .Вот тут у вас формулировочка "плавает". Наверное, всё же "запустить Excel и открыть этот файл, либо должно активизироваться окно экземпляра Excel с открытым файлом"? И тогда сразу же становится понятно, что скрипту требуется взаимодействие со сторонней программой...
Если нужный файл уже открыт, то надо просто записать в него данные и ничего больше с ним не делать.
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38154410
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а, там, - попробывать его открыть "экслюзивно",
получить/не получить по лапам - сделать "выводы" , ... ну и т.д. - не вариант ?
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38154415
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рыжий ПёсВсем привет!
Вопрос, может быть, простой, но я вчера ответ на него нигде не нашёл.
Есть скрипты, которые заполняют данными файл экселя. Если файла не существует, открывается заготовка и сохраняется под именем ИмяФайла , если существует, то должен открыться ИмяФайла .
Как узнать (в VBS), открыт ли уже ИмяФайла ?
Большая просьба не посылать меня на MSDN :)
и вообще, GetOdject(,file) - вроде как "подключится" к открытому файлу или откроет его если он НЕ открыт ...

соотв. остаётся только "убедится", что такой файл просто "есть", "тупым" Dir...

имхо
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38155366
Рыжий Пёс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,
можно примерчик, как работает GetOdject(,file)?
Дело в том, что VBS - не мой профиль, а сделать надо, желательно сегодня. Совершенно нет времени на обучение.
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38156428
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рыжий Пёсqwerty112,
можно примерчик, как работает GetOdject(,file)?
Дело в том, что VBS - не мой профиль, а сделать надо, желательно сегодня. Совершенно нет времени на обучение.
GetObject - конечно
F1GetObject([pathname] [, class])

>> как работает

вот так, как я тут сказал
qwerty112"подключится" к открытому файлу или откроет его если он НЕ открыт

т.е., код - никак не изменится от того, будет этот код обрабатывать УЖЕ открытый ранее пользователем файл,
или сам код - откроет файл

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
dim exl, WB, FSO
set FSO = createobject("Scripting.FileSystemObject")
if not FSO.FileExists("C:\T.xls") then
  msgbox "Нету!"
  ' тут делаете своё "Если файла не существует, открывается заготовка и сохраняется под именем ИмяФайла"
end if

  set WB=getobject("C:\T.xls")
  WB.worksheets(1).cells(3,3) = "Haba-Haba !"
  WB.save
  '
  set exl = WB.Application
  exl.UserControl = True
  exl.visible = true
  exl.Workbooks.Open "C:\T.xls"
  exl.Windows(1).Visible = True

set WB = nothing
set exl = nothing
set FSO = nothing
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38157929
Рыжий Пёс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,
Спасибо.
Пока сделал через ж..., но попробую после переделать.
Просто я не могу разобраться в объектах. На примерах проще.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VBS как узнать, открыт ли файл.
    #38873353
imort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function FileUnlocked(strFileName)
  FileUnlocked = " + Свободен"
  With CreateObject("Scripting.FileSystemObject")
    If .FileExists(FileName) = True Then
      On Error Resume Next
        .OpenTextFile(FileName, 8).Close
        If Err.Number = 70 Then FileUnlocked = " – файл занят"
    Else
      FileUnlocked = " - файл не существует"
    End If
  End With
End Function
...
Рейтинг: 0 / 0
VBS как узнать, открыт ли файл.
    #38873440
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как проверить открыта ли книга?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function IsBookOpen(wbFullName As String) As Boolean
    Dim iFF As Integer
    iFF = FreeFile
    On Error Resume Next
    Open wbFullName For Random Access Read Write Lock Read Write As #iFF
    Close #iFF
    IsBookOpen = Err
End Function
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS как узнать, открыт ли файл.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]