Тема: Программный доступ к проекту Visual Basic в Excel XP

При попытке выполнить команду
ThisWorkbook.VBProject.VBComponents("Update_Report").Export "C:\temp\Update_report.bas"
выдается сообщение об ошибке "программный доступ к проекту Visual Basic не является доверенным". Насколько я помню, в 97 Excele доступ к проекту осуществлялся без проблем. В чем причина этой ошибки и можно ли ее избежать?

Re: Программный доступ к проекту Visual Basic в Excel XP

Наверное надо где-то понизить уровень проверки довереностей документов.

Re: Программный доступ к проекту Visual Basic в Excel XP

В Tools\Macro\Security есть опция Trust access to VB project.
Вот ее надо включить

Re: Программный доступ к проекту Visual Basic в Excel XP

Помогите, как считать данные из Excel в VB....
Мне нужно это сделать с помощью listview.....
Это по-типу база данных такая...
вот кусок проги... не смотрите на закоментированый текст...
короче - через Add надо как-то... а я не знаю как.. в первый столбец сохраняецца... а в следущие нет....
цикл я пока не составлял, т.к. чего его составлять. когда ни один элемент не вытаскиваецца ......

Private Sub Form_Load()
'Dim i As Integer
excel.Workbooks.Open ("e:\Проект\1.xls")
Set objExcel = GetObject("e:\Проект\1.xls")
'i = Form1.ListView1.ListItems.Count
'
' objExcel.Worksheets("лист1").Select
Set itm = Form1.ListView1.ListItems.Add(, , CStr(""))
itm.Text = objExcel.Worksheets("Лист1").Range("A1")
'Form1.ListView1.ListItems(1).SubItems(1) = objExcel.Worksheets("Лист1").Cells(1, 2)
'Cells(1, 1)
' itmx.SubItems(1) = objExcel.Worksheets("Лист1").Cells(2, 2)
'objExcel.Worksheets("Лист1").Cells(1, 1)
'
'' Next j
'
'' For n = 1 To 10
'' objExcel.Worksheets("лист1").Select
'' itmx.SubItems(1) = objExcel.Worksheets("Лист1").Cells(1, 2)
'' Next n
'
'''' For m = 1 To 10
'' objExcel.Worksheets("лист1").Select
'
''Form1.ListView1.ListItems(i).SubItems(1) = Form1.ListView1.ListItems.Add(, , objExcel.Worksheets("Лист1").Cells(1, 2))
'
'Form1.ListView1.ListItems(1).SubItems(1) = excel.Workbooks("e:\Проект\1.xls").Worksheets("Лист1").Cells(1, 2).Value
''' Next m
'''
''' For k = 1 To 10
'' objExcel.Worksheets("лист1").Select
'' itmx.SubItems(3) = objExcel.Worksheets("Лист1").Cells(k, 4)
''' Next k
Form1.ListView1.SortOrder = Index
Form1.ListView1.Sorted = True
ListView1.ColumnHeaders. _
Add , , "?", ListView1.Width / 13
ListView1.ColumnHeaders. _
Add , , "Ф.И.О.", ListView1.Width / 2.5
ListView1.ColumnHeaders. _
Add , , "ЗВАНИЕ", ListView1.Width / 3.8
ListView1.ColumnHeaders. _
Add , , "ДОЛЖНОСТЬ", ListView1.Width / 3.5
' Set View property to Report.
ListView1.View = lvwReport
If Form1.ListView1.ListItems.Count = 0 Then
Form1.Command2(1).Enabled = False
Form1.Command3(2).Enabled = False
Else
Form1.Command2(1).Enabled = True
Form1.Command3(2).Enabled = True
End If
Dim fso, textfile
'
' Set fso = CreateObject("Scripting.FileSystemObject")
' Set txtfile = fso.CreateTextFile("c:\spisokfile.xls", True)
' Dim num As String, fio As String, zvan As String, dolj As String
' Dim nextline As String
' Open "c:\spisokfile.xls" For Input As #1
'
'' i = Form1.ListView1.ListItems.Count
' Do Until EOF(1)
'
' Input #1, nextline
' Form1.ListView1.ListItems.Add , , nextline
'
' Loop
'
' Close #1
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim objExcel As Object
excel.Workbooks.Open ("e:\Проект\1.xls")
Set objExcel = GetObject("e:\Проект\1.xls")
i = Form1.ListView1.ListItems.Count
For j = 1 To Form1.ListView1.ListItems.Count
objExcel.Worksheets("лист1").Select
objExcel.Worksheets("Лист1").Cells(j, 1) = Form1.ListView1.ListItems(j).Text
Next j
For n = 1 To Form1.ListView1.ListItems.Count
objExcel.Worksheets("лист1").Select
objExcel.Worksheets("Лист1").Cells(n, 2) = Form1.ListView1.ListItems(n).SubItems(1)
Next n
For m = 1 To Form1.ListView1.ListItems.Count
objExcel.Worksheets("лист1").Select
objExcel.Worksheets("Лист1").Cells(m, 3) = Form1.ListView1.ListItems(m).SubItems(2)
Next m
For k = 1 To Form1.ListView1.ListItems.Count
objExcel.Worksheets("лист1").Select
objExcel.Worksheets("Лист1").Cells(k, 4) = Form1.ListView1.ListItems(k).SubItems(3)
Next k
End
objExcel.Saved = True
objExcel.Close
End Sub