объект

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

объект

Сообщение Dmitriy Solomnikov » 31.01.2005 (Пн) 18:29

есть код
Dim appGraph As Object
appGraph = CreateObject("MSGraph.Chart")

with appGrath.Application
...
end with

когда дело доходит до with возникает исключение:
"В экземпляре объекта не задана ссылка на объект."

Как с этим бороться.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 01.02.2005 (Вт) 1:11

Сейчас проверять не могу, не дома. Но по-моему надо сдалать примерно так:

Dim appGraph As New Object
appGraph = CreateObject("MSGraph.Chart")
С уважением,
Игорь Шувалов aka Ronin

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.02.2005 (Вт) 5:58

Раз доходит аж до туда, то, имхо, нулю равно не appGrath, а его application...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 01.02.2005 (Вт) 20:08

мне казалось, что createObject выделяет память(создает экземпляр)
Моя дверь всегда открыта, если она не закрыта.

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 02.02.2005 (Ср) 17:35

Вот готовый код для вставки диаграмм в лист MSWord:
Private Sub insertChart(ByRef oWord As Word.Application, ByRef oDoc As Word.Document, ByVal data() As Single, ByVal legend() As String)
Dim oShape As Word.InlineShape
Dim oChart As Object
Dim i As Integer 'счетчик

'------------создаем OLE-объект и присваиваем inlineShape--------------
'объект, который представляет наш OLE-объект, переменной(объекту) oShape.
'Вставляем его(OLE-объект) в конец документа ( \endofdoc - предопределенная звкладка)
'oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
' ClassType:="MSGraph.Chart", FileName _
' :="", LinkToFile:=False, DisplayAsIcon:=False)
oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
ClassType:="MSGraph.Chart", FileName _
:="", LinkToFile:=False, DisplayAsIcon:=False)
'----------------------------------------------------

oChart = oShape.OLEFormat.Object 'создаем объект chart
oChart.charttype = 5 'xlLine = 4 'задаем тип диаграммы

'--------задаем размеры диаграммы--------
oShape.Width = oWord.InchesToPoints(6.25)
oShape.Height = oWord.InchesToPoints(3.57)
'----------------------------------------

With oChart
.PlotArea.Fill.ForeColor.SchemeColor = 2
.PlotArea.Border.LineStyle = 0
With .Application.DataSheet
.activate()
.cells.delete()
For i = 1 To data.Length
Try
.cells(1, i + 1) = legend(i - 1)
.cells(2, i + 1) = data(i - 1)
Catch
End Try
Next
End With
End With
oChart.Application.Update()
oChart.Application.Quit()

End Sub
Моя дверь всегда открыта, если она не закрыта.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 84

    TopList