Здравствуйте. Возможно ли создать выпадающий список со списком названий фотографий с определенной папки и чтоб при выборе открывалась фото в определенной программе.
Поможет макрос из одной строки - при изменении ячейки (которая с выпадающим списком), запускать файл, путь к которому указан в ячейке.
Этот код надо вставить в модуль листа: (правой кнопкой на ярлычке листа - пункт ИСХОДНЫЙ ТЕКСТ)
Код
Private Sub Worksheet_Change(ByVal Target As Range) ' срабатывает при изменении ячеек
On Error Resume Next: Err.Clear
If Target.Address = [b5].Address Then ' укажите здесь свою ячейку
ПутьКФайлу$ = "путь к папке\" & Target ' путь + имя файла из ячейки
CreateObject("wscript.shell").Run """" & ПутьКФайлу$ & """" ' открываем файл
End If
End Sub
А если надо вставить много картинок прямо в ваш файл Excel - можете воспользоваться специальной надстройкой для вставки изображений: http://excelvba.ru/programmes/PastePictures
EducatedFool Спасибо ,вроде получается, но возник еще вопрос, как сделать чтоб при добавлении в папку новой фотографии, название бы появлялось в списке.
PS: Автоматически, при появлении нового файла, список обновляться не будет (это можно сделать, но код очень сложный)
Потому проще написать небольшой макрос (примеры - в поиске по application.OnTime), который запускается с заданным интервалом, и обновляет исходные данные для выпадающего списка.
В частности, вам подойдёт такой макрос, обновляющий список файлов каждые 10 секунд:
Код
Sub ОбновитьСписокИменФайлов()
Dim coll As Collection
' считываем в колекцию coll нужные имена файлов
Set coll = FilenamesCollection("полный путь к папке\", "*.*")
' выводим результаты (список файлов) на лист
For i = 1 To coll.Count ' перебираем все элементы коллекции, содержащей пути к файлам
ИмяФайла = Dir(coll(i))
Cells(4 + i, 13).Value = ИмяФайла
Next
Application.OnTime Now + 10 / 86400, "ОбновитьСписокИменФайлов"
End Sub