На всякий случай, решил более полный код выложить. Вдруг поможет в решении проблемы...
- Код: Выделить всё
...
Dim wSheet As Object
Dim Excel As Object
Dim i As Integer
Set Excel = OLE1.object.Application
For i = 1 To Excel.Workbooks.Count
If Excel.Workbooks.Item(i).Name = wObjectName Then
Set wSheet = Excel.Workbooks.Item(i).Sheets(1)
Exit For
End If
Next i
If wSheet Is Nothing Then
MsgBox "Error! Fatal error 131. Can't access the source file application"
Exit Sub
End If
If tProc.Duration = 0 Then
Dim tRange As Object, tShape As Object
Set tRange = wSheet.Range(getCellAdressByDate(tProc.StartDate))
'Set tShape = OLE1.object.Application.Workbooks(1).Sheets(1).Shapes.AddShape(4, 1, 1, 1, 1)
wSheet.Shapes.AddShape msoShapeDiamond, tRange.Left, tRange.Top, tRange.Width, tRange.Height
...
Примечания:
Почему-то, если запустить Excel, создать там документ, в нем какой-нибудь макрос, и остановить выполнение макроса (напр. брейкпойнтом), то фигура (Shape) нормально создается... Сделал предположение, что неправильно инициализирую wSheet, пробовал иначе, например так:
- Код: Выделить всё
Set wSheet = OLE1.object.Worksheets(1)
но результат всё тот же...
Пожалуйста подскажите что может быть неправильно в коде, или где поискать ответа на мой вопрос?