PDA

Показать полную графическую версию : Word 2003: можно ли создать стиль колонок ?


Страниц : [1] 2

CyraxZ
13-04-2012, 09:32
Word 2003. Задача: необходимо реализовать быстрое преобразование выделенного текста в 2 колонки (с заранее заданными параметрами колонок). Как это сделать с помощью стилей ? В параметрах стилей нет свойств колонок.

P.S. Можно ли решить задачу без использования макросов ?

Iska
13-04-2012, 15:30
Как это сделать с помощью стилей ? В параметрах стилей нет свойств колонок. »
Никак — колонки относятся к разделу.

P.S. Можно ли решить задачу без использования макросов ? »
Не думаю. Впрочем, ничего сложного там нет:

1. Вставить разрыв раздела на текущей странице перед выделением.
2. Вставить разрыв раздела на текущей странице после выделения.
3. Оформить выделение несколькими колонками.
4. Добавить Ваши «заранее заданные параметры колонок».

Например:
Sub Selection2MultiColumns()
With Selection
With .Range
.Collapse wdCollapseStart
.InsertBreak Type:=wdSectionBreakContinuous
End With

With .Range
.Collapse wdCollapseEnd
.InsertBreak Type:=wdSectionBreakContinuous
End With

.Start = .Start + 1

With .PageSetup.TextColumns
.SetCount NumColumns:=2
.EvenlySpaced = True
.LineBetween = False
.Width = CentimetersToPoints(7.62)
.Spacing = CentimetersToPoints(1.25)
End With
End With
End Sub

CyraxZ
13-04-2012, 20:32
До начала массовой "колон"изации хочу разобраться с глюком, имеющим место в нижеприереплённом .doc-файле.
В этом файле стоит автоматическая нумерация страниц. На 6 странице имеется фрагмент текста, размещённый в 2 колонки. Соответственно, в документе стало 3 раздела: первый и третий имеют колонтитулы с номерами страниц, 2-й - отвечает за колонки. НО при этом наблюдается 2 артефакта:
1) 6-я страница имеет номер 6 (как и должно быть), а 7-я - номер 3 (а должен быть номер 7).
2) При нажатии кнопки "Перейти к следующему" на панели колонтитулов перехода с 1-го раздела (стр.1-6) к третьему разделу (стр.7-8) не происходит. При этом с 3-го раздела к первому переход происходит нормально.

У всех колонтитулов в свойствах нумерации стоит галка "Продолжить".

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

okshef
13-04-2012, 21:44
Попробуйте удалить нумерацию, надписи в колонтитулах (которые непонятно зачем использованы), а затем снова перенумеровать.

CyraxZ
13-04-2012, 23:18
надписи в колонтитулах (которые непонятно зачем использованы)
Как по мне, в колонтитулах нет никаких надписей. Даже пробелов. Только поле номера страницы.

Попробуйте удалить нумерацию... а затем снова перенумеровать.
Удалил номера, колонтитулы. Пронумеровал заново - тот же артефакт: номера 1,2,3,4,5,6,3,4

okshef
14-04-2012, 00:05
Тоже не выходит... Для колонтитула 7 страницы снимите "Как в предыдущем", а в формате номера страницы укажите "начать с"... 6

Iska
14-04-2012, 02:48
CyraxZ, дело в том, что Вы когда-то во втором разделе установили формат номера страницы таким вот образом: «Нумерация страниц — начинать с: 2».

Теперь, несмотря на то, что нынче этот раздел не имеет видимого колонтитула с номером страницы, эти настройки существуют и являются действующими. Отсюда — номер первой страницы третьего раздела равен «3».

Можно вернуть вобрат нумерацию второго раздела к стандартному виду, выполнив в окне «Immediate» («Ctrl-G») редактора VBA команду:
ThisDocument.Sections.Item(2).Headers.Item(wdHeaderFooterPrimary).PageNumbers.RestartNumberingAtSect ion = False

CyraxZ
14-04-2012, 09:09
Для колонтитула 7 страницы снимите "Как в предыдущем", а в формате номера страницы укажите "начать с"... 6
Так это заплатка. При изменении числа страниц в 1 разделе нумерация 3-го раздела нарушится.

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

Остаётся вопрос, почему при наличии раздела с одностраничной колонкой перемещение по колонтитулам вперёд не происходит (стопорится на разделе с колонкой) ?

Iska
14-04-2012, 09:33
В последующих версиях офиса, наверное, эту недоработку устранили (отсутствие доступа к свойствам раздела одностраничных колонок) ? »
Не могу знать вследствие отсутствия доступа к более свежим версиям Microsoft Office. Впрочем, думаю, более опытные коллеги подскажут.

Доступ к искомому диалоговому окну «Формат номера страницы» можно получить, вытащив команду для её вызова («FormatPageNumber») из списка всех команд в диалоговом окне «Настройка» на вкладке «Команды»:
http://img848.imageshack.us/img848/9290/image000qo.png
Так что, доступ есть, только он не слишком очевиден на первый взгляд. Но вызывать её все-таки приходится из обычного режима просмотра (но не режима «Просмотр страницы» — и вот это уже, на мой взгляд — ошибка).

Остаётся вопрос, почему при наличии раздела с одностраничной колонкой перемещение по колонтитулам вперёд не происходит (стопорится на разделе с колонкой) ? »
Поясните примером, не понял вопроса.

okshef
14-04-2012, 10:27
эту недоработку устранили »
нет, смотрел в 2010. Но, думаю, это не ошибка. Раздел - это контейнер со своими атрибутами, и машине трудно догадаться, какие настройки из одного вам нужны (или не нужны) в другом. Спасибо Iska, нашел. Только не понимаю - как? Может поделитесь?

Iska
14-04-2012, 10:52
Только не понимаю - как? »
1. Поместить данную команду в любое меню/панель инструментов (можно в новую; по умолчанию команда присутствует на панели инструментов «Колонтитулы», доступной только из просмотра колонтитулов и — в режиме разметки страницы, а нам это не годится по изложенной мною выше причине, которую я полагаю ошибкой).
2. Поместить позицию точки вставки в текст потребного раздела.
3. Переключиться в обычный режим просмотра.
4. Вызвать команду для появления диалогового окна «Формат номера страницы».

P.S. Я правильно понял вопрос?

CyraxZ
14-04-2012, 10:54
Доступ к искомому диалоговому окну «Формат номера страницы» можно получить, вытащив команду для её вызова («FormatPageNumber»)
Нет. В этом случае диалоговое окно "Формат номера страницы" открывается не для раздела с колонками (в данном случае - 2 раздел), а для раздела, в котором стоит номер текущей страницы (в данном случае - 1 раздел).
Т.е. если в вышеприкреплённом файле поставить курсор внутрь колонки и нажать кнопку "Формат номера страницы", то откроются свойства 1 раздела, а не 2-го (отвечающего за колонки).

Поясните примером, не понял вопроса.
В вышеприкреплённом файле:
При нажатии кнопки "Перейти к следующему" на панели колонтитулов перехода с 1-го раздела (стр.1-6) к третьему разделу (стр.7-8) не происходит. При этом с 3-го раздела к первому переход происходит нормально.

3. Переключиться в обычный режим просмотра.
Вот в чём дело. В режиме "Структура" и "Обычный режим" диалоговое окно "Формат номера страницы" открывается для раздела-колонки, а в режиме "Разметка страницы" - для раздела, содержащего номер текущей страницы.

P.S. Итог: проблема вполне решается штатными средствами (без макросов).

Iska
14-04-2012, 11:11
Нет. В этом случае диалоговое окно "Формат номера страницы" открывается не для раздела с колонками (в данном случае - 2 раздел), а для раздела, в котором стоит номер текущей страницы (в данном случае - 1 раздел). »
Я же специально упомянул о том, что нужно предварительно переключиться в обычный режим просмотра:
http://img690.imageshack.us/img690/2194/image000xs.png

В вышеприкреплённом файле:
При нажатии кнопки "Перейти к следующему" на панели колонтитулов перехода с 1-го раздела (стр.1-6) к третьему разделу (стр.7-8) не происходит. При этом с 3-го раздела к первому переход происходит нормально. »
Спасибо, ясно. Посмотрим.

Вот в чём дело… »
Оп-ля. И я погорячился: не прочитав весь пост до конца, сразу ответил на первую часть. Ну, да, ладно. Пусть уж будет.

Iska
14-04-2012, 11:31
CyraxZ, по поводу:
При нажатии кнопки "Перейти к следующему" на панели колонтитулов перехода с 1-го раздела (стр.1-6) к третьему разделу (стр.7-8) не происходит.»
подтверждаю. В чём тут дело — сказать, увы, не могу.
При этом с 3-го раздела к первому переход происходит нормально. »
Аналогично, коллега. Причём, стоит добавить текста во второй раздел, чтобы он занимал более одной страницы (или даже тупо вставить в него разрыв страницы) — навигация начинает работать в обе стороны.

CyraxZ
14-04-2012, 15:46
Причём, стоит добавить текста во второй раздел, чтобы он занимал более одной страницы (или даже тупо вставить в него разрыв страницы) — навигация начинает работать в обе стороны.
Неа, не начинает. В прикреплённом файле 3-й раздел состоит из 2 страниц, при этом навигация вперёд не работает. При добавлении в этот раздел ещё страниц навигация вперёд по-прежнему не работает. Даже если нумерацию привести в порядок (сплошная по всему документу) - навигация вперёд работать не начиниет.
На нулёвом документе при вставке колонок навигация вперёд начинает стопориться на этой колонке.

Похоже, это глюк Word 2003. Ладно хоть в обратном направлении работает.

Iska
14-04-2012, 17:02
В прикреплённом файле 3-й раздел »
добавить текста во второй раздел, чтобы он занимал более одной страницы »

CyraxZ
15-04-2012, 11:49
Я подумал, Вы ошиблись (вместо "третий" написали "второй").
А так - да. Навигация вперёд восстанавливается, поскольку у 2-го раздела появляется свой колонтитул.

В чём тут дело — сказать, увы, не могу.
Iska, а как насчёт перехвата события, перегрузки... ?
Реализуемо такое в VBA ?

Iska
15-04-2012, 11:57
Iska, а как насчёт перехвата события, перегрузки... ? Реализуемо такое в VBA ? »
В VBA данный переход реализуется одной парой команд. Которые, в данном случае, ведут себя аналогично — то бишь, не приводят к желаемому результату в виде перехода.

Изобретать же что-то своё не очень хочется.

CyraxZ
15-04-2012, 22:16
Iska, для того, чтобы отменить все действия макроса одним нажатием кнопки отмены, какие команды нужно поставить в VBA коде ?
Дело в том, что в Corel Draw при программировании на VBA достаточно поставить одну команду вначале кода и одну - в конце кода. И при нажати стандартной кнопки отмены все действия макроса будут отменены за раз. Такое можно реализовать в MS Office ?

Iska
16-04-2012, 03:57
Iska, для того, чтобы отменить все действия макроса одним нажатием кнопки отмены, какие команды нужно поставить в VBA коде ? »
CyraxZ, это уже отвлечённый вопрос, не имеющий непосредственного отношения к данной теме. И задавать его следовало бы в отдельной теме, дабы избежать заслуженной кары со стороны модераторов за нарушение Правил конференции.

Такой возможности в Word из комплекта Microsoft Office 2003 нет. А вот в Word из комплекта Microsoft Office 2010, похоже, есть: Office Word 2010: Work with the Undo Stack Using Word.CustomUndoRecord sample (http://code.msdn.microsoft.com/office/Word-2010-Work-with-the-3449abbc).




© OSzone.net 2001-2012