Lotus + Excel

Mitya

Well-Known Member
13.06.2012
111
0
#1
Гуру, добрый день.

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

Хочу определить, открыт ли 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)
Заранее спасибо.
 

RAJ

Well-Known Member
17.01.2007
440
0
#2
попробуй что-то в этом роде
Код:
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
 

beloff

Well-Known Member
24.07.2012
113
1
#3
решение проще - в диспетчере задач посмотри есть ли среди процессов эксель или Excel.visible = False поменяй на True
 

Mitya

Well-Known Member
13.06.2012
111
0
#4
решение проще - в диспетчере задач посмотри есть ли среди процессов эксель или Excel.visible = False поменяй на True
:( не, не то что я хочу.

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

Mitya

Well-Known Member
13.06.2012
111
0
#6
:( 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
 

Mitya

Well-Known Member
13.06.2012
111
0
#7
Нашел решение:
Код:
If Excel.ActiveWorkbook.ReadOnly Then
MsgBox "Файл занят",64,"Информаци"
Excel.Quit
Set Excel = Nothing		
Exit Sub
End If
Тема закрыта.