Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
1

Как изменить цвет фона страницы?

26.05.2014, 11:44. Показов 4848. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Когда-то давно сделал в Word-е по умолчанию серый цвет фона страницы (Формат>Фон). Сейчас вздумалось сделать кнопку, которая бы по клику в случае если фон серый делала его белым, а если белый - возвращала в серый.
Проблем несколько:
  1. Не могу найти описание свойства, отвечающего за изменение цвета фона документа.
  2. Не знаю как (возможно ли?) обеспечить сохранение результата для всех документов. При этом хотелось бы обойтись без явного открытия normal.dot, если это возможно.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2014, 11:44
Ответы с готовыми решениями:

Как изменить цвет фона строки в ListView
Привет форумчане и гости. Я нещадно использую Excel, есть много макросов и форм со списками....

Как изменить цвет фона ячейки ListView
Доброго времени суток, уважаемые. Проблема - пишу приложение в Access. И для одной из форм очень...

Можно ли изменить цвет фона нескольких ячеек?
можно ли изменить цвет фона нескольких ячеек? Range(Cells(i, 1), Cells(i, 12)).Interior.ColorIndex...

Как программно установить в Excel цвет фона диапазона ячеек?
Привет всем ! Собственно, из вопроса всё ясно. Cпасибо, ZandR

12
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.05.2014, 12:38 2
TanaTiX,
1. обычно макрорекордер дает ответ на этот вопрос. Конкретно по цвету фона - в 2007 макрорекордер записывает изменение свойств темы, но можно напрямую:
Visual Basic
1
ActiveDocument.Background.Fill.ForeColor.RGB = &HC0C0C0
1
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.05.2014, 13:06  [ТС] 3
Казанский, да, действительно, записывает.
Сделал такой вариант:
Visual Basic
1
2
3
4
5
If ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255) Then
        ActiveDocument.Background.Fill.ForeColor.RGB = RGB(192, 192, 192)
    Else
        ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255)
    End If
Этот код по началу работал, а сейчас отказывается. Никаких ошибок не выдает. Даже пришлось проверить сам факт работы кода - работает. Но никак на документе это не сказывается. Я где-то что-то упустил?
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,139
Записей в блоге: 4
26.05.2014, 13:11 4
попробуйте
Visual Basic
1
2
3
4
5
6
7
If ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255) Then
    ActiveDocument.Background.Fill.ForeColor.RGB = RGB(192, 192, 192)
Elseif ActiveDocument.Background.Fill.ForeColor.RGB = RGB(192, 192, 192) then
    ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255)
else
     ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255)
End If
1
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.05.2014, 13:26  [ТС] 5
shanemac51, не помогло, такое же поведение.

Не по теме:

ЗЫ. есть смутное сомнение, что дело не в коде, но в чем не знаю

0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,139
Записей в блоге: 4
26.05.2014, 13:27 6
хотя и ваш работает
правда перед этим я запустила свой
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub w140525_1326_back()
'
If ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 0) Then
ActiveDocument.Background.Fill.ForeColor.RGB = RGB(146, 208, 80)
    ActiveDocument.Background.Fill.Visible = msoTrue
    ActiveDocument.Background.Fill.Solid
Else
    ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 0)
    ActiveDocument.Background.Fill.Visible = msoTrue
    ActiveDocument.Background.Fill.Solid
End If
End Sub
1
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.05.2014, 13:32  [ТС] 7
shanemac51, попробовал этот вариант - не пашет. Поставил MsgBox с выводом цвета - он рассказал, что цвет меняется, но реально я этого не вижу. В чем может быть проблема?
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,139
Записей в блоге: 4
26.05.2014, 13:46 8
надо смотреть документ, угадать не смогу
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.05.2014, 13:57  [ТС] 9
shanemac51, я создаю новый документ - это не работает даже на новом документе
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,139
Записей в блоге: 4
26.05.2014, 14:34 10
попробуйте

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub w140525_1324()
If ActiveDocument.Background.Fill.Visible = False Then
ActiveDocument.ActiveWindow.View.Type = wdWebView
With ActiveDocument.Background.Fill
    .Visible = True
    .ForeColor.RGB = RGB(192, 192, 192)
End With
End If
 
If ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255) Then
      ActiveDocument.Background.Fill.ForeColor.RGB = RGB(192, 192, 192)
  Else
      ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255)
  End If
End Sub
1
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
27.05.2014, 17:23  [ТС] 11
shanemac51, переключает в веб-режим, в котором работает, но в режиме разметки - нет. Попытка манипуляции соответствующими свойствами - также без результата

Добавлено через 23 часа 3 минуты
Своими силами что-то все никак...
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,139
Записей в блоге: 4
27.05.2014, 18:51 12
нашла в справке
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Debug.Print ActiveDocument.Background.Fill.Visible
If ActiveDocument.Background.Fill.Visible = False Then
ActiveDocument.ActiveWindow.View.Type = wdWebView
With ActiveDocument.Background.Fill
    .Visible = True
    .ForeColor.RGB = RGB(192, 192, 192)
End With
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Обои могут видеть только в режиме веб-документа.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
end sub
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
27.05.2014, 19:57  [ТС] 13
shanemac51, а нельзя запомнить текущий режим отображения документа, перейти в веб, сделать грязное дело и вернуть режим отображения в исходный?
Я вот так попробовал - не работает
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim a As Integer
    a = ActiveDocument.ActiveWindow.View.Type
    If ActiveDocument.Background.Fill.Visible = False Then
    ActiveDocument.ActiveWindow.View.Type = wdWebView
    With ActiveDocument.Background.Fill
        .Visible = True
        .ForeColor.RGB = RGB(192, 192, 192)
    End With
    End If
 
If ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255) Then
      ActiveDocument.Background.Fill.ForeColor.RGB = RGB(192, 192, 192)
  Else
      ActiveDocument.Background.Fill.ForeColor.RGB = RGB(255, 255, 255)
  End If
  ActiveDocument.ActiveWindow.View.Type = a
Так тоже
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Dim a As Integer
    a = ActiveDocument.ActiveWindow.View.Type
    Debug.Print ActiveDocument.Background.Fill.Visible
    If ActiveDocument.Background.Fill.Visible = False Then
    ActiveDocument.ActiveWindow.View.Type = wdWebView
    With ActiveDocument.Background.Fill
        .Visible = True
        .ForeColor.RGB = RGB(192, 192, 192)
    End With
    End If
    ActiveDocument.ActiveWindow.View.Type = a
При этом, что странно, стоит один раз в документе вручную поменять фон - дальше работает.
0
27.05.2014, 19:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2014, 19:57
Помогаю со студенческими работами здесь

Как изменить цвет фона в ListBox'е?
Можно как-нибудь изменить цвет фона в ListBox'е?

как изменить цвет фона QTreeView?
Добрый день, подскажите как изменить цвет фона QTreeView. Не ячеек, а той области,которая находится...

Как изменить цвет текста и фона
Куда мне вставить изменения цвета текста и фона :-( ? Подскажите,пожалуйста. Код рабочей...

Как изменить цвет фона у TitleBar?
Добрый вечер. как в WPF приложение изменить цвет(background) у TitleBar. Накидал я кое что но...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru