Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 10:10   #1
CATerpillar
Пользователь
 
Регистрация: 12.03.2009
Сообщений: 24
По умолчанию помогите пожалуйста PowerPoint и VBA

приветствую всех прошу прощения, что пишу малость не в том разделе, но раздела который нужен к сожалению не нашел, проблема у меня такая: в рамках написания дипломной работы мне нужно осуществить небольшую интерактивную презентацию, столкнулся с такой проблемой нужно программно создавать фигуры на слайде и над ними производить некоторые действия (например смена цвета перетаскивание и т.д.) подскажите пожалуйста кто знает как это осуществить, буду очень благодарен

HELP
CATerpillar вне форума Ответить с цитированием
Старый 12.03.2009, 10:29   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Так в чём проблема?
Включаете запись макросов, и выполняете нужные действия.

Потом мы уже подредактируем код при необходимости
(если Вы объясните, что именно, и в какой последовательности надо сделать)
EducatedFool вне форума Ответить с цитированием
Старый 12.03.2009, 13:44   #3
CATerpillar
Пользователь
 
Регистрация: 12.03.2009
Сообщений: 24
По умолчанию

ок, а как осуществить запись макроса? чтой то я не могу ничего похожего найти (office 2007)

Последний раз редактировалось CATerpillar; 12.03.2009 в 14:08.
CATerpillar вне форума Ответить с цитированием
Старый 12.03.2009, 14:51   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вот что говорит справка:
Цитата:
Запись макросов, использовавшаяся для автоматизации выполнения частых задач, отсутствует в приложении Microsoft Office PowerPoint 2007. Вместо нее можно использовать Visual Basic для приложений (VBA) (VBA (Visual Basic for Applications). Версия макроязыка программирования Microsoft Visual Basic, используемая для программирования приложений для Microsoft Windows и поставляемая с некоторыми программами корпорации Майкрософт.) для создания или изменения макросов (Макрос. Действие или набор действий, используемые для автоматизации выполнения задач. Макросы записываются на языке программирования Visual Basic для приложений (VBA).). Чтобы создать или изменить макрос с помощью Visual Basic для приложений, выполните следующие действия.


На вкладке Разработчик в группе Программа нажмите кнопку Макросы.
Можно отобразить вкладку «Разработчик», если она недоступна.
  1. В диалоговом окне Макрос в поле Имя макроса введите имя макроса.
  2. В списке Где выберите шаблон (Шаблон. Файл или файлы, содержащие структуру и инструменты для создания таких элементов законченных файлов как стиль и макет страницы. Например, шаблоны Microsoft Word позволяют создавать отдельные документы, а шаблоны Microsoft FrontPage — целые веб-узлы.) или презентацию, где требуется сохранить макрос.
  3. В поле Описание введите описание макроса.
  4. Чтобы открыть Visual Basic для приложений, нажмите кнопку Создать.
Чтобы показать вкладку «Разработчик»
  1. Нажмите кнопку Microsoft Office и выберите команду Параметры PowerPoint.
  2. В диалоговом окне Параметры PowerPoint нажмите кнопку Основные.
  3. В группе Основные параметры работы с PowerPoint установите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
Поставь себе 2003 Powerpoint и запиши макрос в нем.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 13.03.2009, 22:12   #5
CATerpillar
Пользователь
 
Регистрация: 12.03.2009
Сообщений: 24
По умолчанию

огромное спасибо за помощь все получилось записал макрос в 2003 офисе, получившийся код подправил и вставил в 2007 офисе все заработало =)

но теперь появился следующий вопрос теперь хотелось бы что бы фигуры можно было заливать не одним цветом а выбранным из линейки цветов, линейка цветов представляет собой набор квадратиков разного цвета вот теперь ломаю голову над тем, как считывать цвет с фигуры (чтобы присвоить его переменной с помощью которой осуществляется заливка)
CATerpillar вне форума Ответить с цитированием
Старый 13.03.2009, 22:47   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Прикрепите файл с макросом.
Укажите, с какой фигуры надо брать цвет.

Можно просто изменять свойство ColorIndex - оно принимает значение от 0 до 56 (по крайней мере, так в Excel. В PowerPoint тоже должно быть что-то вроде этого)
EducatedFool вне форума Ответить с цитированием
Старый 13.03.2009, 23:29   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Для фигуры (Shape) цвет заливки это Shape.Fill.BackColor, а цвет контура — Shape.Fill.ForeColor.
Читаете с одной фигуры и записываете в другую. Но с примером можно будет быстрее
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 14.03.2009, 09:54   #8
CATerpillar
Пользователь
 
Регистрация: 12.03.2009
Сообщений: 24
По умолчанию

вот то, что есть на данный момент,сейчас можно создавать и заливать только одним заранее прописанным цветом, в идеале хотелось сделать чтобы цвет можно было брать с линейки цветов, заливать фигуры а потом по средствам перемещения фигур по слайду можно было собирать из них композицию, так что после того как разберусь с заливкой буду заморачиваться с перетаскиванием =)
Вложения
Тип файла: rar создание и закрашивание фигур.rar (36.0 Кб, 105 просмотров)

Последний раз редактировалось CATerpillar; 14.03.2009 в 10:00.
CATerpillar вне форума Ответить с цитированием
Старый 14.03.2009, 13:55   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
в идеале хотелось сделать чтобы цвет можно было брать с линейки цветов
Макрос написать несложно - чтобы взять цвет одной фигуры, и покрасить в этот цвет другую, требуется одна строка кода.

Но для выполнения этого действия макросу надо знать, с какой фигуры считывать цвет, и какую красить.

Можно выделять 2 фигуры, и запускать макрос - но как определить, какую из выделенных фигур надо красить?

Можно выдавать запросы типа - 1) выберите фигуру для покраски, 2) выберите фигуру с нужным цветом, но это всё только усложнит работу...

А как Вы себе представляете этот процесс?

Пока можете посмотреть пример макроса, русиющего разноцветные кнопки на слайде.
Откройте файл, и запустите макрос СозданиеКнопок


PS: Впервые работая с PowerPoint, обнаружил, что объектная модель проработана намного хуже, нежели в Word и Excel
Не нашёл даже элементарной функции ActiveSlide
И ничего похожего на application.screenupdating ...
Вложения
Тип файла: rar создание и закрашивание фигур.rar (47.2 Кб, 83 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 14.03.2009, 14:16   #10
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
…Но для выполнения этого действия макросу надо знать, с какой фигуры считывать цвет, и какую красить…
Вместо цветных прямоугольников можно использовать ToggleButton, окрашеный в нужный цвет и окрашивать фигуру в тот цвет, какая ToggleButton нажата. Времени нет, а то занялся бы плотнее.

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
…Впервые работая с PowerPoint, обнаружил, что объектная модель проработана намного хуже, нежели в Word и Excel
Не нашёл даже элементарной функции ActiveSlide
И ничего похожего на application.screenupdating ...
Да уж. Похоже, что у девелоперов вдохновение уходило по мере разработки от Word до Outlook
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста c vba! Я дрова не понимаю, вам легко будет! em0071 Microsoft Office Excel 3 19.06.2008 23:08