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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2012, 16:22   #1
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию раскрашивание частей рисунка по клику на тексте

здравствуйте, знатоки))

помогите пожалуйста разобраться с задачей

есть рисунок - карта москвы и ее районов, где кажый район отрисован и соответственно с помощью функции "Разгруппировать" мы выделили каждый район на рисунке как отдельный объект (т.е. кликнув по границе района, мы выделяем его как отдельный рисунок на общем рисунке и, например, можем районы раскрасить как нам надо).

к карте прилагается список районов.

нужно чтобы при клике по названию района из списка нам высвечивался каким-либо образом этот район на карте (например, стал активным / выделился), а в идеале раскрасился в выбранный заранее цвет.

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

подскажите пожалуйста.

пример: М и МО-районы.rar

Последний раз редактировалось Bape}l{ka; 25.01.2012 в 10:17.
Bape}l{ka вне форума Ответить с цитированием
Старый 25.01.2012, 07:06   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Программка-раскраска

Пример (пока) не смотрел — чревато, но ход мысли поддерживаю.

Код:
Sub Макрос1() 'пример обработки фигур в документе - здесь: всех под одну гребёнку

For n = 1 To ActiveDocument.Shapes.Count
    ActiveDocument.Shapes.Item(n).Select        'выделение n-й фигуры документа Word
    Selection.ShapeRange.Fill.Visible = True    'видимость заливки (здесь: да, видна)
    Selection.ShapeRange.Fill.Transparency = 0  'прозрачность (здесь нулевая)
    Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0) 'заливка (здесь: красная)
    Selection.ShapeRange.Line.DashStyle = msoLineDashDot     'контур (здесь: пунктир)
Next

End Sub
В приложенном доке откройте по Alt-F11 проект и понажимайте F8.
Изображения
Тип файла: jpg WalkThrough.jpg (34.2 Кб, 133 просмотров)
Вложения
Тип файла: doc Legko.doc (30.5 Кб, 15 просмотров)

Последний раз редактировалось Sasha_Smirnov; 25.01.2012 в 07:11.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 25.01.2012, 12:28   #3
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

Sasha_Smirnov, спасибо большое!))

а еще вопрос, вы перебираете фигуры по "n", а эта "n" у каждой фигуры своя постоянная или произвольная? т.е. назначу я район по фигуре с определенной n-кой , а они потом переменяются.. о.О
Bape}l{ka вне форума Ответить с цитированием
Старый 25.01.2012, 21:26   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

В Lego.doc Макрос3 показывает имя выделенной в документе фигуры.

Чтобы увидеть и изменить имена фигур, рекомендую выполнить Макрос2 (см. по Alt-F8 там же)
Код:
Sub Макрос2() 'пример именования фигур документа Word
On Error Resume Next    'в случае отказа (CANCEL) у фигуры остаётся старое имя

    With ActiveDocument.Shapes
        For n = 1 To .Count
            With .Item(n)                           'работаем с n-й фигурой
                .Name = Replace(Trim(InputBox("Название района:", _
                "Сейчас это называется " & .Name, "Район_" & Format(n, "00"))), " ", "_")
                'здесь внешняя функция Replace при вводе имени меняет пробелы на подчерки
            End With
        Next
    End With
End Sub
Не по теме: опять смотрим только рисунок — неужели не хочется попробовать жареного мяса/кода?!
Изображения
Тип файла: png Безымянный.png (7.6 Кб, 71 просмотров)
Вложения
Тип файла: doc Lego.doc (45.0 Кб, 14 просмотров)

Последний раз редактировалось Sasha_Smirnov; 26.01.2012 в 15:29. Причина: другой DOC.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реверс частей массива GangstaKarapuse Помощь студентам 1 26.11.2011 17:29
Раскрашивание отдельных ячеек StringGrid через разные функции dubailand Компоненты Delphi 7 04.09.2011 16:02
[Delphi] Выделение частей речи в тексте vince Помощь студентам 8 07.12.2008 23:37
И по поводу раскрашивание ячеек от даты Wasily Microsoft Office Excel 9 18.06.2008 08:38
Раскрашивание черно-белых изображений!!! ALEX_RAS Помощь студентам 1 16.05.2008 21:57