Изменение текста в текстбоксе на слайде

Программирование на Visual Basic for Applications
vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 27.09.2011 (Вт) 20:24

Подскажите, пожалуста, почему при запуске презентации, на слайде которой расположен текстбокс, текст в тексбоксе не меняется?

Вот такой код:

Код: Выделить всё
Public WithEvents App As Application


Privat Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
    Slide1.TextBox1.Value = "123"
End Sub

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Изменение текста в текстбоксе на слайде

Сообщение Димитрий » 28.09.2011 (Ср) 9:20


Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Изменение текста в текстбоксе на слайде

Сообщение Димитрий » 28.09.2011 (Ср) 9:36

Добавлю.
Если Sub Auto_open() разместить в надстройке, то процедура выполниться при загрузке надстройки. В простом модуле презентации - нет.

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 28.09.2011 (Ср) 14:33

Спасибо, но немного не по теме, вроде бы. Мне нужно, чтобы при начале показа слайдов менялся текст в тексбоксе на слайде1. Без всяких ручных пассов. Так можно сделать?

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 28.09.2011 (Ср) 14:40

Я понимаю, что в мануалах этого наверное не написано, но по логике вещей - это должно как-то решаться, без нажатия на всяческие там буттоны?

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 28.09.2011 (Ср) 15:13

А нельзя ли по шагам, как сделать надстройку, которая будет содержать Private Sub App_SlideShowBegin? Может и правда так можно решить проблему?

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 28.09.2011 (Ср) 21:15

Попробовал сохранить макрос в виде надстройки, вылезает ошибка, что невозможно сохранить презентацию в виде надстройки, поскольку презентация содержит элементы управления активХ. Можно ли это обойти?

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 28.09.2011 (Ср) 21:43

В общем удалось сохранить код в виде надстройки из другой презентации, без элементов управления:
Код: Выделить всё
Dim X As New Class1
Sub InitializeApp()
     Set X.App = Application
End Sub

Подключил надстройку к своей презетации, но она автоматически не срабатывает, т.е. не происходит инициализация, пока вручную макрос не запустишь. Я чувствую, что уже близко подошёл к решению проблемы) Помоги чуть-чуть, а?

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Изменение текста в текстбоксе на слайде

Сообщение Димитрий » 29.09.2011 (Чт) 9:34

в модуле надстройки:
Код: Выделить всё
Dim X As New Class1
Sub Auto_open()
     Set X.App = Application
End Sub

в класс модуле надстройки Class1:
Код: Выделить всё
Public WithEvents App As Application
Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
    Application.Run "InitApp"
End Sub

в модуле презентации соответственно макрос:
Код: Выделить всё
Sub InitApp()
     Slide1.TextBox1.Text = "7878787"
End Sub

Ещё нужен код для проверки того что запущен просмотр именно Вашей презентации.

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 01.10.2011 (Сб) 10:37

Спасибо, сделал, как ты сказал, но выдаёт ошибку. Если есть время посмотреть - выслал файл в личку.

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Изменение текста в текстбоксе на слайде

Сообщение Димитрий » 03.10.2011 (Пн) 8:00

Код:
Sub InitApp()
Slide1.TextBox1.Text = DateDiff("d", "16.06.2011", Date)
End Sub
перенесите в Вашу презентацию (т.е. другой файл)
Файл "Дней без н.с..ppt" сохраните как надстройку *.ppa
И подключите надстройку Сервис-Надстройки...-Добавить
Откройте Вашу презентацию (т.е. другой файл)

Теперь, если не отключить надстройку, она будет при начале просмотра любой презентации пытаться запустить макрос "InitApp"

vishnyaks
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.09.2011 (Вт) 18:44

Re: Изменение текста в текстбоксе на слайде

Сообщение vishnyaks » 03.10.2011 (Пн) 19:52

Большое спасибо, всё получилось!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList