С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/103: Рейтинг темы: голосов - 103, средняя оценка - 4.60
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
Word

Вставка gif-файлов, изображающих анимацию

21.07.2018, 12:37. Показов 19781. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тихвинский В.И.
ВСТАВКА В WORD GIF ФАЙЛОВ ИЗОБРАЖАЮЩИХ АНИМАЦИЮ
В документ Word возможно вставить интерактивные файлы Gif.

Недостаток в том, что работать они на ранних версиях программы будут в режиме отключения всех макросов с уведомлением.

Т.е. определенный уровень работы макросов должен быть обеспечен. На современных версиях Word рисунки могут работать и с отключенными макросами, даже если файл Word-а сохранен без поддержки макросов, но при внедрении картинок вам все равно придется включить макрорежим.

Второй недостаток, Gif картинка должна быть достаточно небольшая, что бы помещалась по ширине на страницу документа, иначе ее не будет видно всю.

Третий недостаток в том, что Gif файлы должны находится вне документа Word.

Для вставки интерактивного Gif необходимо сперва вставить элемент ActiveX называемы WebBrowser (из набора дополнительных элементов Microsoft Web Browser), размер элемента пользователь изменяет мышью в режиме конструктора.

После вставки элемента необходимо программно прошить в его свойство Navigate2 путь к файлу Gif. Файл может находиться на вашем компьютере, в той же папке, где лежит ваш документ.

В другом случае ссылка делается на файл, лежащий в интернете. Ниже приведен пример кода, который должен находиться в модуле ThisDocument вашего документа.

Подпрограмма с именем Document_Open() будет запускаться каждый раз при загрузке вашего файла в Word. Если вы перетащите ваш документ в другую папку вместе с файлом с именем “Рис. 3.gif”, то подпрограмма автоматически переопределит ссылку на него.

Ссылка на второй Gif файл записана как константа, и после выполнения кода, строчка в подпрограмме WebBrowser2.Navigate2 "http://tvitaly1.ucoz.ru/ris-4.gif" может быть уничтожена, путь к файлу сохранится в свойстве Navigate2 объекта WebBrowser2.


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Document_Open()
 
'Путь к папке, где лежит документ
Dim path
 path = Application.ActiveDocument.path + "\"
 
'Первый объект управления (Microsoft Web Browser), вставленный в активный документ
'задаем полное имя файла gif, которой лежит в той же папке, что и активный документ
WebBrowser1.Navigate2 path + "Рис. 3.gif"
 
'Второй объект управления (Microsoft Web Browser), вставленный в активный документ
'ссылка на картинку в интернете
WebBrowser2.Navigate2 "http://tvitaly1.ucoz.ru/ris-4.gif"
 
End Sub
Добавлено через 13 часов 19 минут

Добавлено через 1 час 21 минуту
Может испытает кто файл ворда с гифками? Вначале него инструкция, архив здесь. Испытайте, пожалуйста, кому не трудно. Если гифки не заработают сразу, закройте файл ворда, и откройте его снова. Испытания производите в ворде. У меня все работает с отключенными макросами, но включенными всеми элементами ActiveX.
https://yadi.sk/d/oV6LO0s23ZQzdZ
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.07.2018, 12:37
Ответы с готовыми решениями:

Можно ли вставить на форму gif-анимацию?
Помогите не могу сделать!!! через Image показывает только 1 кадр!!!

Как выводить Gif-анимацию
Доброго времени суток! Не подскажете, как средствами ВБА вывести гиф анимацию. Что-то у меня...

Как воспроизводить в PictureBox GIF анимацию без сторонних компонентов
Добавлено через 3 минуты Кстати, а как воспроизводить в PictureBox GIF анимацию без сторонних...

18
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
22.07.2018, 11:50  [ТС]
Я вспомнил, что у меня есть еще блокнот, испытания на другом компьютере прошли успешно, ура!
0
22.07.2018, 12:07

Не по теме:

tvitaly1, а зачем это ? Просто интересуюсь. :)

0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
22.07.2018, 13:35  [ТС]
Просто захотелось иметь анимированные файлы GIF в документе программы Word

Добавлено через 9 минут
Дорабатываем тему
Событийная подпрограмма Document_Open удобна для интерактивного переопределения ссылок на файл GIF, если вы планируете размещать GIF файлы в конкретной папке или на конкретном ресурсе в интернет, то можно вообще не писать код в тот файл, в котором вы размещаете анимированные GIF файлы. Макрос записанный ниже не только вставляет объект WebBrowser в документ, но и прописывает в свойстве Navigate2 путь к GIF файлу. Размер объекта WebBrowser пользователю придется подправить вручную.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub ВставитьОбъектДляGif()
'
' ВставитьОбъектДляGif Макрос
' Макрос записан 21.07.2018 Тихвинский
'
Dim e As InlineShape, s As String
 
s = InputBox("Введите путь к ссылке файла GIF или нажмите Cancel", "Ввод ссылки к файлу GIF")
If s <> "" Then
If CommandBars("Control Toolbox").Visible = False Then
ActiveDocument.ToggleFormsDesign
End If
Set e = Selection.InlineShapes.AddOLEControl(ClassType:="Shell.Explorer")
e.OLEFormat.Object.Navigate2 s
ActiveDocument.ToggleFormsDesign
CommandBars("Control Toolbox").Visible = False
Set e = Nothing
End If
 
End Sub
Добавлено через 58 минут
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Может испытает кто файл ворда с гифками? Вначале него инструкция, архив здесь. Испытайте, пожалуйста, кому не трудно. Если гифки не заработают сразу, закройте файл ворда, и откройте его снова. Испытания производите в ворде. У меня все работает с отключенными макросами, но включенными всеми элементами ActiveX.
https://yadi.sk/d/oV6LO0s23ZQzdZ
Я поменял архив
https://yadi.sk/d/uSXBt7uc3ZSVKx
Двойным кликом запускайте документ word, при первом запуске будет ошибка приложения, при втором гифки не заработают, закроите документ word и при третьем запуске файла гифки заработают нормально.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.07.2018, 13:46

Не по теме:

Цитата Сообщение от tvitaly1 Посмотреть сообщение
Двойным кликом запускайте документ word, при первом запуске будет ошибка приложения, при втором гифки не заработают, закроите документ word и при третьем запуске файла гифки заработают нормально.
Ужос.

0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
22.07.2018, 14:08  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Не по теме:
Сообщение от tvitaly1
Двойным кликом запускайте документ word, при первом запуске будет ошибка приложения, при втором гифки не заработают, закроите документ word и при третьем запуске файла гифки заработают нормально.
Ужос.
Какие то глюки при первых запусках docx файла, когда с хранилища упакованный docx перекачиваешь.

Добавлено через 17 минут
Хотя на 2007 ворде все сразу открылось.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
22.07.2018, 14:13
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Просто захотелось иметь анимированные файлы GIF в документе программы Wor
любой контрол поддерживающий видео, а так-же поддерживаемый майкрософтом будет воспроизводить gif
вы вдумайтесь! (надеюсь вы не в игрушки тут играете) что есть gif ?, набор картинок в одном файле с указанным интервалом
воспроизведения, любые даже сторонние видеоплееры могут воспроизвести этот гиф

Штатными средствами, тоесть теми контролами которые в пакете установки можно добавить компонент и по возможности
юзить любые гифы
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
22.07.2018, 14:24  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
любой контрол поддерживающий видео, а так-же поддерживаемый майкрософтом будет воспроизводить gif
вы вдумайтесь! (надеюсь вы не в игрушки тут играете) что есть gif набор картинок в одном файле с указанным интервалом
воспроизведения, любые даже сторонние видеоплееры могут воспроизвести этот гиф
Штатными средствами, тоесть теми контролами которые в пакете установки можно добавить компонент и по возможности
юзить любые гифы
Я и использовал стандартный контрл WebBrowser для воспроизведение Gif картинок в документе word. И все получилось. Если вставлять Gif файл просто в документ Word никакой анимации не будет, будет видна только первая картинка файла Gif. Не я первый, кто хотел вставить в документ анимированный Gif. Но я не нашел в интернете ответ, как это сделать, пришлось разработать свой способ, о нем и рассказал в этой теме. Что в этом страшного и плохого?
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
22.07.2018, 14:27
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Я и использовал стандартный контрл WebBrowser
требуется видео ВИДЕО-КОНТРОЛ
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
22.07.2018, 14:30  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
требуется видео ВИДЕО-КОНТРОЛ
Увы, иначе никак не сделаешь анимацию gif в документе word, но успокаивает то, что контрл WebBrowser имеется в стандартном наборе контрлов.
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
24.07.2018, 11:27  [ТС]
Код для вставки объекта подправил, но это, увы, работает в Word до 2010 версии

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub ВставитьОбъектДляGif()
'
' ВставитьОбъектДляGif Макрос
' Макрос записан 21.07.2018 Тихвинский
'
Dim e As InlineShape, s As String
   
s = InputBox("Введите ссылку к файлу GIF или нажмите Cancel", "Ввод ссылки к файлу GIF")
If s <> "" Then
Set e = Selection.InlineShapes.AddOLEControl(ClassType:="Shell.Explorer")
    e.OLEFormat.Object.Navigate2 s
 
 Set e = Nothing
End If
 
End Sub
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
24.07.2018, 19:30
Вот смотри

офис 2003 в документе word одна гифка
вот эта:



Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
Option Explicit
 
Private Sub Document_Open()
    ChDir ThisDocument.Path
    WindowsMediaPlayer1.URL = "гифки-горлум-удалённое-737907.gif"
End Sub
Вложения
Тип файла: rar Гифка.rar (517.6 Кб, 35 просмотров)
1
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
24.07.2018, 20:20  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
Вот смотри
офис 2003 в документе word одна гифка
вот эта:
Хороший элемент, и url можно прописать не программно, и элементы управления можно отключить, и по размеру элемента картинка встраивается, но в нем ограничено число повторов воиспроизведения.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
24.07.2018, 22:46
Цитата Сообщение от tvitaly1 Посмотреть сообщение
но в нем ограничено число повторов воиспроизведения.
Да ничего там не ограниченно, WMPlayer - это стандартный видеоконтрол, и он настраивается так-же как и любой другой
в нем должно быть зацикливание (Repeat помоему) отображение и тп
узнавай, читай справки и тд, тебя что в гугле забанили
1
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
24.07.2018, 23:39  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
Да ничего там не ограниченно, WMPlayer - это стандартный видеоконтрол, и он настраивается так-же как и любой другой
в нем должно быть зацикливание (Repeat помоему) отображение и тп
узнавай, читай справки и тд, тебя что в гугле забанили
Я хочу скрыть элементы управления контрола, а в окне свойств у него можно установить только 999 повторений(см. рисунок ниже), зациклить в нем показ гифки до бесконечности нельзя через свойства. Хорошо, попробую поискать зацикливание.
Миниатюры
Вставка gif-файлов, изображающих анимацию  
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
25.07.2018, 00:09  [ТС]
Программно зациклить можно медиоплеер так
Visual Basic
1
2
3
4
5
Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)
If NewState <> 8 Then
 WindowsMediaPlayer1.Controls.play
End If
End Sub
Добавлено через 18 минут
fever brain, спасибо большое!
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
25.07.2018, 01:47
Сам поюзал, зацикливание не так устанавливается
вот модуль документа ThisDocument
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Option Explicit
 
Sub AddNewVideo(WMP As WindowsMediaPlayer, ByVal Filename, Optional ByVal autoStart As Boolean)
 
    With WMP
        .enableContextMenu = False 'Удаляем контекстное меню'
        .settings.setMode "loop", True  'Устанавливаем зацикливание
        .windowlessVideo = False
        .Width = 80
        .Height = 80
        .settings.autoStart = autoStart
        .uiMode = "none" 'Устанавливаем его интерфейс  > user interface например none (без кнопок)  или mini
        .URL = Filename
    End With
End Sub
 
Private Sub Document_Open()
    Dim b As Boolean
    ChDir ThisDocument.Path
    b = MsgBox("Стартовать три гифки ?" & vbLf & _
        "Вы можете стартовать их позже кликнув мышкой по квадрату", vbYesNo) = vbYes
    
    AddNewVideo WindowsMediaPlayer1, "1.gif", b
    AddNewVideo WindowsMediaPlayer2, "2.gif", b
    AddNewVideo WindowsMediaPlayer3, "3.gif", b
End Sub
 
Private Sub WindowsMediaPlayer1_Click(ByVal nButton As Integer, ByVal nShiftState As Integer, ByVal fX As Long, ByVal fY As Long)
    WindowsMediaPlayer1.Controls.play
End Sub
 
Private Sub WindowsMediaPlayer2_Click(ByVal nButton As Integer, ByVal nShiftState As Integer, ByVal fX As Long, ByVal fY As Long)
    WindowsMediaPlayer2.Controls.play
End Sub
 
Private Sub WindowsMediaPlayer3_Click(ByVal nButton As Integer, ByVal nShiftState As Integer, ByVal fX As Long, ByVal fY As Long)
    WindowsMediaPlayer3.Controls.play
End Sub


ниже скрин и папка с примером
Миниатюры
Вставка gif-файлов, изображающих анимацию  
Вложения
Тип файла: rar 3 Гифки.rar (298.8 Кб, 22 просмотров)
2
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
25.07.2018, 01:53
Естественно уровень безопасности у макросов в настройках word нужно понизить иначе эфектов не будет макросы не запустятся
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
25.07.2018, 22:42  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
Сам поюзал, зацикливание не так устанавливается
вот модуль документа ThisDocument
Кликните здесь для просмотра всего текста
ниже скрин и папка с примером
Ну тогда включение зацикливания для всех элементов WindowsMediaPlayer можно организовать кодом ниже

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
'установка зацикливание для всех элементов WindowsMediaPlayer
Dim e
For i = 1 To ActiveDocument.InlineShapes.Count
'устанавливаем указатель на ообъект
Set e = ActiveDocument.InlineShapes(i).OLEFormat.Object
If InStr(e.Name, "WindowsMediaPlayer") <> 0 Then 'Если в имене объекта содержится текст WindowsMediaPlayer
 e.settings.setMode "loop", True   'Устанавливаем зацикливание
End If
'снимаем указатель
Set e = Nothing
Next i
Добавлено через 1 час 5 минут
И в завершении, так сказать, темы.
Объек WindowsMediaPlayer может использоваться для создания gif анимации в документе word. WindowsMediaPlayer объект из дополнительного набора объектов ActiveX. В окне свойств WindowsMediaPlayer можно задать URL для гифки. В свойстве custom задать none(без элементов управления) и количество повторений, также задается автозапуск. Для зацикливания всех анимации всех гифок в модуле ThisDocument в событийной подпрограмме Document_Open() прописывается соответствующий фрагмент кода (см. код ниже). К сожалению переопределять зацикливания анимации приходится программно, после каждого нового запуска документа Word. Если gif файл с анимацией находится не в интернет ресурсе, а расположен в папке, где находится документ, то URL нему определяется программно (см. фрагмент кода ниже) .


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Document_Open()
'определение путь к файлу документа
Dim path
path = ActiveDocument.path + "\"
'программное задание свойства URL определяющее адрес для gif файла для объекта WindowsMediaPlayer1
'предполагается что файл с именем MyFile.gif лежит в той же директории, что и документ
WindowsMediaPlayer1.URL = path + "MyFile.gif"
 
 
'установка зацикливание для всех элементов WindowsMediaPlayer
Dim e, i
For i = 1 To ActiveDocument.InlineShapes.Count
On Error GoTo m1
'устанавливаем указатель на объект
Set e = ActiveDocument.InlineShapes(i).OLEFormat.Object
If InStr(e.Name, "WindowsMediaPlayer") <> 0 Then 'Если в имене объекта содержится текст WindowsMediaPlayer
 e.settings.setMode "loop", True   'Устанавливаем зацикливание
End If
'снимаем указатель
Set e = Nothing
m1:
Next i
  
End Sub
Добавлено через 37 минут
Внес изменения в код

Добавлено через 17 минут
fever brain, спасибо большое!

Добавлено через 2 часа 16 минут
правка кода
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.07.2018, 22:42
Помогаю со студенческими работами здесь

RichTextBox и вставка анимированного GIF
Вопрос часто тут пережёвывался, но обычно интересна вставка картинок - например бмп. Мне же нужно...

Как просматривать GIF файлы без использования дополнительных файлов?
Как просматривать гифы без использования дополнительных файлов, со скоростью которая заложена в GIF...

Загрузка в файл ресурсов файлов .gif
Существует ли возможность автоматизировать загрузку в файл ресурсов 668 файлов в формате .gif,...

Написать программу, Изображающую на экране поверхность, образованную вращением вокруг оси OX графика функции y=-4/(x+1)
Помогите с написанием программы... Написать программу, Изображающую на экране поверхность,...

Разработать программу, изображающую на экране крупно 2 слова ТЕСТ
помогите пожалуйста! Разработать программу, изображающую на экране крупно 2 слова ТЕСТ (на одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru