Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.
Задача: я хочу найти путь к папке TEMP в VBA. Решение: чтобы на вашем компьютере найти путь к папке TEMP, используйте код VBA:
TempPath = Environ("
Temp"
)
Функция Environ помимо обнаружения пути к папке TEMP, дает большое количество информации о системе. Однако, вы должны быть аккуратны, потому что переменные функции, присутствующие на одном компьютере, могут отсутствовать на другом. Чтобы узнать, какие переменные доступны в вашей системе, используйте следующий код:
Sub ListEnvironVariables()
For i = 1 To 99
Cells(i, 1).Value = Environ(i)
Next i
End Sub
Когда вы запустите этот код, вы получите список доступных переменных (рис. 1). Каждая строка здесь содержит имя переменной, знак равенства и значение переменной для данного компьютера.
Рис. 1. Значение переменных функции Environ
Скачать заметку в формате Word или pdf, примеры в формате Excel (с кодом VBA)
Когда вы знаете, что некая переменная доступна, вы можете передать ее имя в кавычках. Например, Environ("
USERNAME"
) (рис. 2).
Используйте следующий код, чтобы вывести в окне сообщения логин и имя домена:
Sub MyUserName()
MsgBox "
Вы вошли в систему как "
& Environ("
USERNAME"
) & "
в домен "
& Environ("
USERDOMAIN"
)
End Sub
Рис. 2. Сообщение о логине и домене
Вы можете вывести в ячейку А1 путь к папке TEMP с помощью кода:
Sub MyTemp()
Cells(1, 1).Value = Environ("
TEMP"
)
End Sub
Рис. 3. Макрос MyTemp() помещает в ячейку А1 путь к папке TEMP
Дополнительные сведения: функция Environ не работает на листе Excel. Но, вы можете написать код пользовательской функции, чтобы сделать ее доступной в стандартном интерфейсе Excel:
Function MyEnviron(ByVal Key)
MyEnviron = Environ(Key)
End Function
Теперь, зная имя переменной, вы можете использовать функцию MyEnviron, как обычную функцию Excel (рис. 4).
Рис. 4. Пользовательская функция MyEnviron возвращает имя компьютера
Резюме: на ПК с Windows функция VBA Environ предоставляет информацию о пути к папке TEMP, имени компьютера, имени пользователя и многое другое.