• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus + Excel

  • Автор темы Mitya
  • Дата начала
M

Mitya

Гуру, добрый день.

Пытаюсь найти решение вопроса на форму - не получается.

Хочу определить, открыт ли Excel-ий файл в момент открытия его через OLE
Кусок кода:
Код:
		filepath = "с:\111.xls"
xlFilename = filepath
Print "Путь к файлу: " + filepath
Print "Подключние к Excel..."
Set Excel = createobject("Excel.Application")
Excel.visible = False
Print "Открытие " & xlFilename & "..."
Excel.Workbooks.Open (xlFilename)
.....
.....	
Set xlWorkbook = Excel.ActiveWorkbook
Set xlSheet = xlworkbook.Worksheets(1)

Заранее спасибо.
 
R

RAJ

попробуй что-то в этом роде
Код:
Function IsExcelRunning(AppLink As Variant) As Boolean

On Error Goto final
Set AppLink=GetObject(,"Excel.Application")
IsExcelRunning=True
Exit Function

final:
IsExcelRunning=False
Exit Function
End Function
 
B

beloff

решение проще - в диспетчере задач посмотри есть ли среди процессов эксель или Excel.visible = False поменяй на True
 
M

Mitya

решение проще - в диспетчере задач посмотри есть ли среди процессов эксель или Excel.visible = False поменяй на True

:( не, не то что я хочу.

я программно хочу определить, открыт ли кто файл "с:\111.xls". И дальше скрипт не выполняется - выводится сообщение "Файл занят"
 
M

Mitya

EXCEL сам предупредит.

:( Excel предупреждает, только тогда, когда я сохранить пытаюсь файл

А я хочу, чтобы он в момент открытия файла предупредил.
Вот, что есть на данный момент:
Код:
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = ws.Currentdocument
Set doc = uidoc.Document	

Dim xlFilename As String
Dim filepath As Variant
Dim Row As Integer

Dim Excel As Variant
Dim xlWorkbook As Variant
Dim xlSheet As Variant 

filepath = "С:111.xls"
xlFilename = filepath
Print "Путь к файлу: " + filepath
Print "Подключние к Excel..."
Set Excel = createobject("Excel.Application")
Excel.visible = False
Print "Открытие " & xlFilename & "..."
Excel.Workbooks.Open (xlFilename)	
Set xlWorkbook = Excel.ActiveWorkbook	
Set xlSheet = xlworkbook.Worksheets(1)	
row =2000	
Do While True
With xlSheet
.....
GoTo Save
......			
End With
Loop
Save:	
Print "Отключение Excel..."
xlWorkbook.Close True
Excel.Quit
Set Excel = Nothing			
End Sub
 
M

Mitya

Нашел решение:
Код:
If Excel.ActiveWorkbook.ReadOnly Then
MsgBox "Файл занят",64,"Информаци"
Excel.Quit
Set Excel = Nothing		
Exit Sub
End If

Тема закрыта.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!