Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
17.04.2024, 02:33:34

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 240 Сообщений в 5 456 Тем от 6 756 Пользователей
Последний пользователь: Expert2024
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Редактирование макроса замены картинок на названия
Страниц: [1]   Вниз
Печать
Автор Тема: Редактирование макроса замены картинок на названия  (Прочитано 3419 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kvant52
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2



Просмотр профиля E-mail
« : 07.02.2018, 13:59:03 »

Добрый день.

Нашел на этом сайте один макрос полезный:

Код: (vb)
Sub Save_Object_As_Picture()
    Dim li As Long, oObj As Shape, wsSh As Worksheet, wsTmpSh As Worksheet
    Dim sImagesPath As String, sName As String
    
    sImagesPath = ActiveWorkbook.Path & "\images\" '"
    If Dir(sImagesPath, 16) = "" Then
        MkDir sImagesPath
    End If
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set wsSh = ActiveSheet
    Set wsTmpSh = ActiveWorkbook.Sheets.Add
    For Each oObj In wsSh.Shapes
        If oObj.Type = 13 Then
            li = li + 1
            oObj.Copy
            sName = "img" & li
            With wsTmpSh.ChartObjects.Add(0, 0, oObj.Width, oObj.Height).Chart
                .ChartArea.Border.LineStyle = 0
                .Parent.Select
                .Paste
                .Export Filename:=sImagesPath & sName & ".jpg", FilterName:="JPG"
                .Parent.Delete
            End With
            oObj.TopLeftCell.Value = sImagesPath & sName & ".jpg"
            oObj.Delete ' удаляем картинку с листа
        End If
    Next oObj
    Set oObj = Nothing: Set wsSh = Nothing
    wsTmpSh.Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    MsgBox "Картинки сохранены по пути: " & sImagesPath, vbInformation, "www.excel-vba.ru"
End Sub

Комментарий администратора Коды оформляйте тегами VBCode. п.п. 4.25 Правил форума

Вопрос в том, как его можно изменить, чтобы вместо изображения вставлялся не просто путь к картинке, а ссылка на эту картинку?
« Последнее редактирование: 07.02.2018, 14:23:13 от The_Prist » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 830



Просмотр профиля WWW
« Ответ #1 : 07.02.2018, 14:22:51 »

Код: (vb)
oObj.TopLeftCell.Value = sImagesPath & sName & ".jpg"

после этой строки запишите такую:
Код: (vb)
wsSh.Hyperlinks.Add Anchor:=oObj.TopLeftCell, Address:=sImagesPath & sName & ".jpg", TextToDisplay:=sImagesPath & sName & ".jpg"

И коды в сообщениях оформляйте тегами VBCode. п.п. 4.25 Правил форума
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Kvant52
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2



Просмотр профиля E-mail
« Ответ #2 : 07.02.2018, 14:41:46 »

Комментарий администратора убрал цитирование

Спасибо, про коды на будущее буду знать
« Последнее редактирование: 07.02.2018, 15:07:54 от The_Prist » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 830



Просмотр профиля WWW
« Ответ #3 : 07.02.2018, 15:07:33 »

И про цитирование так же учтите - нет необходимости цитировать все сообщение - смотрится очень некрасиво и нечитабельно. Не цитируйте сообщения без необходимости, а если надо процитировать - выделите нужную часть фразы и нажмите ЦИТИРОВАТЬ. Тогда в цитату попадет только выделенная часть, а не все сообщение.
Спасибо.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
weblab
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 1


Просмотр профиля E-mail
« Ответ #4 : 07.05.2018, 09:35:20 »

Подскажите пожалуйста, можно ли с помощью этого скрипта получить оригинальные имена изображений, а не пересохранять с другим названием?
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru