Другие языки программирования и технологии

Макрос для excel - VBA (гиперссылка)

Помогите пожалуйста написать макрос для excel. Нужно, что бы при наведении на гиперссылку отображалось содержимое папки (название всех файлов). Или при вставке гиперссылки в ячейки создавалась еще 1 строчка, в которой бы перечислялись все файлы которые находятся в папке. В vba совсем ничего не знаю. Но этот макрос мне нужен.
Max Borzenkov
Max Borzenkov
545
Получите, распишитесь. Функция возвращает все файлы в папке по маске.

Function GetFiles(fldr As String, Optional fltr As String = "*.*") As Variant
Dim sTemp As String, sHldr As String
If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
sTemp = Dir(fldr & fltr)
If sTemp = "" Then
FileList = Split("No files found", "|") 'ensures an array is returned
Exit Function
End If
Do
sHldr = Dir
If sHldr = "" Then Exit Do
sTemp = sTemp & "|" & sHldr
Loop
FileList = Split(sTemp, "|")
End Function
МЛ
Михаил Лапшин
70 476
Лучший ответ
Max Borzenkov Что-то я тупой похоже. Подскажите как этим пользоваться? Зашел в создание макросов и там ввел ваш код, и мне вылезла ошибка. В онлайн компиляторах то же вылезают ошибки.
'Прототип =) Код вставить в Workbook
'Макс. длина подсказки по крайней мере в Excel 2003 = 255 символам.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target as Range)
Dim strName As String
Dim objHyperlink as Hyperlink
Dim intAttr As Integer
Dim intLen As Integer

For Each objHyperlink In Target.Hyperlinks
On Error Resume Next
intAttr = GetAttr(objHyperlink.Address)
Err.Clear
On Error GoTo 0

objHyperlink.ScreenTip = ""

If intAttr And vbDirectory <> 0 Then
strName = Dir(objHyperlink.Address & "\")
While strName <> ""
intLen = intLen + Len(strName) + 2
If intLen >= 255 Then Exit For
objHyperlink.ScreenTip = objHyperlink.ScreenTip + strName & vbCrLf
strName = Dir()
Wend
End If
Next
End Sub
Артём Амазарян
Артём Амазарян
84 764