После написания данного кода в окне выбора макросов станет доступным макрос BrowseFolderl. Результат его выполнения показан на рис. 3.38.
Рис. 3.38. Список файлов суказанием пути
На рисунке видно, что для каждой позиции данного списка указывается полный путь к файлу.
Получение информации о состоянии дисков
При необходимости можно быстро получить и вывести на активном рабочем листе разнообразную информацию о текущем состоянии дисков компьютера. Для этого достаточно воспользоваться макросом, код которого выглядит так (листинг 3.99).
Sub DrivesInfo()
Dim objFileSysObject As Object ' Объект для работы _
с файловой системой
Dim objDrive As Object ' Анализируемый диск
Dim intRow As Integer ' Заполняемая строка листа
' Создание объекта для работы с файловой системой
Set objFileSysObject = CreateObject(«Scripting.FileSystemObject»)
' Очистка листа
Cells.Clear
' Запись с первой строки
intRow = 1
' Запись на лист информации о дисках компьютера
On Error Resume Next
For Each objDrive In objFileSysObject.Drives
' Буква диска
Cells(intRow, 1) = objDrive.DriveLetter
' Готовность
Cells(intRow, 2) = objDrive.IsReady
' Тип диска
Select Case objDrive.DriveType
Case 0
Cells(intRow, 3) = «Неизвестно»
Case 1
Cells(intRow, 3) = «Съемный»
Case 2
Cells(intRow, 3) = «Жесткий»
Case 3
Cells(intRow, 3) = «Сетевой»
Case 4
Cells(intRow, 3) = «CD-ROM»
Case 5
Cells(intRow, 3) = «RAM»
End Select
' Метка диска
Cells(intRow, 4) = objDrive.VolumeName
' Общий размер
Cells(intRow, 5) = objDrive.TotalSize
' Свободное место
Cells(intRow, 6) = objDrive.AvailableSpace
intRow = intRow + 1
Next
End Sub
После написания кода в окне выбора макросов появится макрос Driveslnf о. В результате его выполнения на текущем рабочем листе будет сформирован список, пример которого показан на рис. 3.39.
Рис. 3.39. Список с информацией о дисках компьютера
Для каждой позиции списка последовательно указывается буква диска, его «готовность к работе» в данный момент, тип диска, общий объем диска и свободное в настоящее время место на нем.
Очевидно, что содержимое данного списка зависит от конфигурации используемого компьютера.
Расчет среднего арифметического
В данном разделе мы рассмотрим небольшой трюк, с помощью которого можно быстро рассчитать среднее значение ячеек, расположенных над активной ячейкой, с отображением результата в активной ячейке.
Как известно, расчет среднего значения можно выполнять штатными средствами Excel – с помощью функции СРЗНАЧ. Однако в некоторых случаях удобнее воспользоваться макросом, код которого представлен в листинге 3.100 (этот код нужно набрать в стандартном модуле редактора VBA).
Sub CalculateAverage()
Dim strFistCell As String
Dim strLastCell As String
Dim strFormula As String
' Условия закрытия процедуры
If ActiveCell.Row = 1 Then Exit Sub
' Определение положения первой и последней ячеек для расчета
strFistCell = ActiveCell.Offset(-1, 0).End(xlUp).Address
strLastCell = ActiveCell.Offset(-1, 0).Address
' Формула для расчета среднего значения
strFormula = "=AVERAGE(" & strFistCell & ":" & strLastCell &
")"
' Ввод формулы в текущую ячейку
ActiveCell.Formula = strFormula
End Sub