1

Тема: Применение стилей по умолчанию для новых таблиц

Есть два файла:
1. Оригинал
2. Тестовый

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

Как добиться применения стилей по умолчанию для новых таблиц?
Спс, ув.

2

Re: Применение стилей по умолчанию для новых таблиц

Добавил поясняющий скриншот.Применение стилей по умолчанию для новых таблиц

3

Re: Применение стилей по умолчанию для новых таблиц

Добавил поясняющий скриншот(в предыдущем посту не прикрепилось): внешняя ссылка

4

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

. . .
Как добиться применения стилей по умолчанию для новых таблиц?
. . .

Лучше всего - написать макрос для создания новой таблицы, куда включить создание надписи и

5

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

. . .
Как добиться применения стилей по умолчанию для новых таблиц?
. . .

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

6

Re: Применение стилей по умолчанию для новых таблиц

yshindin пишет:
VNIIAEN пишет:

. . .
Как добиться применения стилей по умолчанию для новых таблиц?
. . .

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

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

7

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

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

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

8

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

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

По умолчанию при создании новой таблицы Word применяет определенный стиль таблицы. Название стиля зависит от локали, напр., это может быть "Сетка таблицы", а может быть и "Table Grid". Определите этот стиль и внесите в него соответствующие изменения.
Стиль нужно менять в Normal.dotm, либо в прикрепляемом стилевом шаблоне, если вы его используете (что я рекомендую), либо в самом документе - с этим надо вам разобраться.
Вот этим макросом можно узнать название стиля созданной таблицы (перед исполнением макроса поместите курсор в только что созданную таблицу).

Sub TableStyleInfo() 'TBD
Dim s As String
If Selection.Tables.Count > 0 Then
    s = "Style: '" & Selection.Tables(1).Style & "'" & vbCrLf & _
        "Rows: " & CStr(Selection.Tables(1).Rows.Count) & vbCrLf & _
        "Columns: " & CStr(Selection.Tables(1).Columns.Count)
Else
    s = "No table in selection"
End If
MsgBox s
End Sub

9

Re: Применение стилей по умолчанию для новых таблиц

yshindin пишет:
VNIIAEN пишет:

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

По умолчанию при создании новой таблицы Word применяет определенный стиль таблицы. Название стиля зависит от локали, напр., это может быть "Сетка таблицы", а может быть и "Table Grid". Определите этот стиль и внесите в него соответствующие изменения.
Стиль нужно менять в Normal.dotm, либо в прикрепляемом стилевом шаблоне, если вы его используете (что я рекомендую), либо в самом документе - с этим надо вам разобраться.
Вот этим макросом можно узнать название стиля созданной таблицы (перед исполнением макроса поместите курсор в только что созданную таблицу).

Sub TableStyleInfo() 'TBD
Dim s As String
If Selection.Tables.Count > 0 Then
    s = "Style: '" & Selection.Tables(1).Style & "'" & vbCrLf & _
        "Rows: " & CStr(Selection.Tables(1).Rows.Count) & vbCrLf & _
        "Columns: " & CStr(Selection.Tables(1).Columns.Count)
Else
    s = "No table in selection"
End If
MsgBox s
End Sub

Ваш макрос вернул мне следующий набор данных:

Style: 'Сетка таблицы;Группа_ГМС_таблица'
Rows: 14
Columns: 2

Интересующий меня стиль "Группа_ГМС_таблица" - но этого названия ни в списке стилей оригинала, ни в списке стилей нового документа я не обнаружил. Список стилей для просмотра я вызываю сочетанием клавиш Ctrl+Shift+Alt+S.

Что я делаю не правильно, и как действовать дальше?

10

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

. . .
Интересующий меня стиль "Группа_ГМС_таблица" - но этого названия ни в списке стилей оригинала, ни в списке стилей нового документа я не обнаружил. Список стилей для просмотра я вызываю сочетанием клавиш Ctrl+Shift+Alt+S.
Что я делаю не правильно, и как действовать дальше?

Делаете вы все правильно, но вы должны добиться того, чтобы макрос возвращал одно имя стиля, а не список. Список указывает на наложение стилей. По указанной вами комбинации клавиш выдаются абзацные и символьные стили (но не табличные). Чтобы перейти к просмотру табличных стилей, вам надо после отображения стилей выдать команду "Управление стилями". Затем найти этот табличный стиль на вкладке Изменение и как-то переименовать его, убрав разделитель имен и второе имя в списке. Затем перейти к изменению атрибутов табличного стиля.

11

Re: Применение стилей по умолчанию для новых таблиц

yshindin пишет:
VNIIAEN пишет:

. . .
Интересующий меня стиль "Группа_ГМС_таблица" - но этого названия ни в списке стилей оригинала, ни в списке стилей нового документа я не обнаружил. Список стилей для просмотра я вызываю сочетанием клавиш Ctrl+Shift+Alt+S.
Что я делаю не правильно, и как действовать дальше?

Делаете вы все правильно, но вы должны добиться того, чтобы макрос возвращал одно имя стиля, а не список. Список указывает на наложение стилей. По указанной вами комбинации клавиш выдаются абзацные и символьные стили (но не табличные). Чтобы перейти к просмотру табличных стилей, вам надо после отображения стилей выдать команду "Управление стилями". Затем найти этот табличный стиль на вкладке Изменение и как-то переименовать его, убрав разделитель имен и второе имя в списке. Затем перейти к изменению атрибутов табличного стиля.

Мне кажется, вам надо изменить имя на "Сетка таблицы" и для этого стиля менять атрибуты. Тогда все создаваемые таблицы будут подхватывать этот стиль (а не "Группа_ГМС_таблица"). Если же вы хотите, чтобы создаваемые таблицы подхватывали стиль "Группа_ГМС_таблица", то надо писать свой макрос, в котором прописать применение стиля "Группа_ГМС_таблица" к новой таблице.

12

Re: Применение стилей по умолчанию для новых таблиц

По указанной вами комбинации клавиш выдаются абзацные и символьные стили (но не табличные). Чтобы перейти к просмотру табличных стилей, вам надо после отображения стилей выдать команду "Управление стилями". Затем найти этот табличный стиль на вкладке Изменение и как-то переименовать его, убрав разделитель имен и второе имя в списке. Затем перейти к изменению атрибутов табличного стиля.

В "Управлении стилями"
я нашёл только стиль "Сетка таблицы"

см.скрин: внешняя ссылка

А стиля "Группа_ГМС_таблица" нет ни в оригинале, ни во втором новом файле. Может есть ещё способы по редактированию стилей?

13

Re: Применение стилей по умолчанию для новых таблиц

VNIIAEN пишет:

. . .
В "Управлении стилями"
я нашёл только стиль "Сетка таблицы"
см.скрин: внешняя ссылка
А стиля "Группа_ГМС_таблица" нет ни в оригинале, ни во втором новом файле. Может есть ещё способы по редактированию стилей?
. . .

Установите в таблицу курсор и выполните макрос :

Sub SetTableStyle()
If Selection.Tables.Count > 0 Then
   Selection.Tables(1).Style = "Сетка таблицы"
End If
End Sub

Выполните еще макрос (он вычищает в именах стилей остатки имени, если в имени есть символ точки с запятой):

Sub CleanStyleNames()
Dim iscl as Long
Dim st as Style
Dim oldstname as String
Dim newstname as String
For Each st in ActiveDocument.Styles
   oldstname = st.NameLocal
   iscl = InStr(oldstname, ";")
   If iscl > 0 Then
      newstname = Left$(oldstname, iscl-1)
      st.NameLocal = newstname
   End If
Next
End Sub

14

Re: Применение стилей по умолчанию для новых таблиц

yshindin пишет:
VNIIAEN пишет:

. . .
В "Управлении стилями"
я нашёл только стиль "Сетка таблицы"
см.скрин: внешняя ссылка
А стиля "Группа_ГМС_таблица" нет ни в оригинале, ни во втором новом файле. Может есть ещё способы по редактированию стилей?
. . .

Установите в таблицу курсор и выполните макрос :

Sub SetTableStyle()
If Selection.Tables.Count > 0 Then
   Selection.Tables(1).Style = "Сетка таблицы"
End If
End Sub

Выполните еще макрос (он вычищает в именах стилей остатки имени, если в имени есть символ точки с запятой):

Sub CleanStyleNames()
Dim iscl as Long
Dim st as Style
Dim oldstname as String
Dim newstname as String
For Each st in ActiveDocument.Styles
   oldstname = st.NameLocal
   iscl = InStr(oldstname, ";")
   If iscl > 0 Then
      newstname = Left$(oldstname, iscl-1)
      st.NameLocal = newstname
   End If
Next
End Sub

Премного благодарен! )