Здравствуйте, уважаемые!
Пытаюсь построить круговую диаграмму по табличным данным через скрипт, но не могу задать тип диаграммы. Код частично адаптировал из автоматически записанного макроса. VB не изучал (и сам Basic тоже). Прошу помощи!
Set objXL = WScript.CreateObject("Excel.Application")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
objXL.Visible = TRUE
objXL.WorkBooks.Add
objXL.workbooks(1).worksheets(2).delete
objXL.workbooks(1).worksheets(2).delete
objXL.Columns(1).ColumnWidth = 6
objXL.Columns(2).ColumnWidth = 10
objXL.Columns(3).ColumnWidth = 10
objXL.Columns(4).ColumnWidth = 10
objXL.Cells(1, 1).Value = "Буква диска"
objXL.Cells(1, 2).Value = "Объём диска, Мб"
objXL.Cells(1, 3).Value = "Свободно, Мб"
objXL.Cells(1, 4).Value = "Занято, Мб"
objXL.Range("A1:D1").Select
With objXL.Selection
.WrapText = True
.ShrinkToFit = True
.Font.Bold = True
.Interior.ColorIndex = 1
.Interior.Pattern = 1
.Font.ColorIndex = 2
End With
Dim intIndex
intIndex = 2
'Проверяем все драйвы (HDD, FDD, CDD) в системе
For each i In fso.Drives
'DriveType=2 - логические диски. Зачем нам дисковод и т.п. ерунда?
If i.DriveType=2 Then
'Получаем букву диска
drive=i.DriveLetter
'Узнаем свободное место
total= fso.GetDrive(drive).TotalSize
free = fso.GetDrive(drive).FreeSpace
'выводим информацию в соответствующие ячейки
objXL.Cells(intIndex, 1).Value = drive
objXL.Cells(intIndex, 2).Value = cLng(total/1048576)
objXL.Cells(intIndex, 3).Value = cLng(Free/1048576)
objXL.Cells(intIndex, 4).Value = objXL.Cells(intIndex, 2).Value - objXL.Cells(intIndex, 3).Value
intIndex = intIndex + 1
objXL.Cells(intIndex, 1).Select
End If
Next
objXL.Range("A1:D9").Select
objXL.Charts.Add()
objXL.workbooks(1).worksheets(1).move objXL.workbooks(1).charts(1)
objXL.workbooks(1).charts(1).activate
With objXL.Charts(1)
.HasTitle = True
.ChartTitle.Text = "Информация о дисковом пространстве"
End With
Ответить
|