Есть например переменная picc="иванов" в той же папке где и файл с макросом есть картинка иванов.jpg подскажите как можно упростить данную процедуру? КАртинка размещается на втором листе активного файла.
Есть например переменная picc="иванов" в той же папке где и файл с макросом есть картинка иванов.jpg подскажите как можно упростить данную процедуру? КАртинка размещается на втором листе активного файла.Sashagor1982
Если есть картинка, если есть файл, если есть макрос... и если кому-то не будет влом, будет работать. Мне тема прискучела, ибо, после №15 смысловой пост только 1 - с новым кодом.
Если есть картинка, если есть файл, если есть макрос... и если кому-то не будет влом, будет работать. Мне тема прискучела, ибо, после №15 смысловой пост только 1 - с новым кодом.RAN
Public PathList() As String 'Массив с путями к файлам Public ImageNumber As Long 'Число фоток
Sub FotoFind()
Dim i As Long
MsgBox prompt:="Выделите файлы с фотографиями" With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True 'Даём возможность выбрать много файлов .Show 'Открываем форму открытия файлов ImageNumber = 0 'Счётчик фоток On Error Resume Next ReDim PathList(1 To .SelectedItems.Count) 'Выделяем память под динамический массив If Err.Number <> 0 Then Exit Sub 'Если ничего не выбрано, выйти For i = 1 To .SelectedItems.Count If Right(.SelectedItems(i), 3) = "jpg" Then 'Проверяем, является ли файл картинкой ImageNumber = ImageNumber + 1 'Если это фотка, увеличиваем счётчик PathList(ImageNumber) = .SelectedItems(i) '... и пишем адрес в массив End If Next i End With Select Case ImageNumber Case 0 MsgBox prompt:="В ваших файлах фотографий нет" Case Else MsgBox prompt:="Найдено " & ImageNumber & " фотографий" End Select
End Sub
[/vba] Он просит Вас открыть файлы с фотками (можно сразу много), считает их и засовывает пути к ним в массив. Далее просто крутите в цикле от 1 до ImageNumber макрос для вставки, который Вам уже написали.
Sashagor1982, вот макрос. [vba]
Код
Public PathList() As String 'Массив с путями к файлам Public ImageNumber As Long 'Число фоток
Sub FotoFind()
Dim i As Long
MsgBox prompt:="Выделите файлы с фотографиями" With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True 'Даём возможность выбрать много файлов .Show 'Открываем форму открытия файлов ImageNumber = 0 'Счётчик фоток On Error Resume Next ReDim PathList(1 To .SelectedItems.Count) 'Выделяем память под динамический массив If Err.Number <> 0 Then Exit Sub 'Если ничего не выбрано, выйти For i = 1 To .SelectedItems.Count If Right(.SelectedItems(i), 3) = "jpg" Then 'Проверяем, является ли файл картинкой ImageNumber = ImageNumber + 1 'Если это фотка, увеличиваем счётчик PathList(ImageNumber) = .SelectedItems(i) '... и пишем адрес в массив End If Next i End With Select Case ImageNumber Case 0 MsgBox prompt:="В ваших файлах фотографий нет" Case Else MsgBox prompt:="Найдено " & ImageNumber & " фотографий" End Select
End Sub
[/vba] Он просит Вас открыть файлы с фотками (можно сразу много), считает их и засовывает пути к ним в массив. Далее просто крутите в цикле от 1 до ImageNumber макрос для вставки, который Вам уже написали.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.