Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

В этом выпуске опубликованы следующие советы:


Word Expert - профессиональная работа с текстом

Выпуск рассылки №110 от 2008-08-01 09:09

В этом выпуске:

  1. Советы и подсказки
  2. Полезные ссылки
  3. Информация об авторских правах

Советы и подсказки

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

Поиск слов с прописными буквами

Роман интересуется:
Как в документе найти все слова, написанные прописными буквами? Причем, можно ли результаты поиска вывести вместе, или ворд будет переходить от слова к слову?

Можно воспользоваться следующим макросом, который мне помогли реализовать специалисты VBA с форума microsoft.public.word.vba.general.
Этот макрос позволяет найти в документе все слова, написанные прописными буквами, скопировать их в конец документа, отсортировать по алфавиту и удалить повторяющиеся слова. При этом, не затрагиваются односимвольные слова, типа О, И и так далее.

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

Sub UcaseList()
'Поиск в тексте слов с прописными буквами, копирование их в конец документа, сортировка и удаление повторяющихся
'Помощь от Jean-Guy Marcil и Graham Mayor
'http://groups.google.ru/group/microsoft.public.word.vba.general/browse_thread/thread/6b84229d8e5c741d?hl=ru#
Dim rngDoc As Word.Range
Dim wu As Word.Range
Dim lngDocEnd As Long
Set rngDoc = ActiveDocument.Range
lngDocEnd = rngDoc.End
With ActiveDocument
   Selection.EndKey Unit:=wdStory  'переходим в конец документа
   Selection.TypeParagraph   'вставляем параграф
   .Bookmarks.Add Range:=Selection.Range, Name:="ListStart"   'вставляем закладку
   'для каждого слова проверяем его регистр и если есть слова с прописными буквами, добавляем их в конец документа
   For Each wu In rngDoc.Words
      If wu.Case = wdUpperCase Then
         .Range.InsertAfter vbCrLf & wu.Text
         rngDoc.End = lngDocEnd
      End If
   Next wu
   .Bookmarks("ListStart").Select  'выбираем закладку, выделяем все слова, что идут ниже ее, и сортируем их по алфавиту
   With Selection
      .EndKey Unit:=wdStory, Extend:=wdExtend
      .Sort , FieldNumber:="Paragraphs", _
      SortFieldType:=wdSortFieldAlphanumeric, _
      SortOrder:=wdSortOrderAscending
      'с отсортированными словами
      With .Find
         .ClearFormatting
         .Replacement.ClearFormatting
      'удаляем пробелы после слов
         .Text = "[ ](^13)"
         .Replacement.Text = "\1"
         .MatchWildcards = True
         .Execute Replace:=wdReplaceAll
      'удаляем лишние концы абзацев
         .Text = "(*^13)@"
         .Replacement.Text = "\1"
         .MatchWildcards = True
         .Execute Replace:=wdReplaceAll
      'ищем повторяющиеся слова и удаляем их
         .Text = "([!A-Z-А-ЯЁ])[A-Z-А-ЯЁ]^13"
         .Replacement.Text = "\1"
         .Execute Replace:=wdReplaceAll
      End With
   End With
End With
End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Создание макроса из готового кода
Автоматическая запись макроса

Оставить комментарий | Задать вопрос

Макрос изменения регистра первых букв в предложении

Андрей спрашивает:
Мне нужен макрос, который бы менял первые буквы предложений, например, с маленькой на большую. После однобуквенных предлогов в начале предложений ставится неразрывный пробел. Курсор перед запуском макроса может находиться в любом месте текста.

Можно воспользоваться следующим макросом:
Sub firstCharCase()
'изменение регистра первых букв предложений и
'замена пробела после однобуквенного предлога на неразрывный пробел
Dim fChar As Range
For Each fChar In ActiveDocument.Sentences
   fChar.Characters.First.Case = wdUpperCase
Next fChar
With ActiveDocument
   .Select
   With Selection.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = "([А-ЯЁ]){1}([ ])"
      .Replacement.Text = "\1^s"
      .MatchWildcards = True
      .Forward = True
      .Execute Replace:=wdReplaceAll
   End With
End With
Selection.Collapse wdCollapseStart
End Sub
Оставить комментарий | Задать вопрос

Добавление и настройка часто используемых языков в документах

Анатолий задает вопрос:
Подскажите, как в меню Сервис – Язык – Выбор языка оставить только 3 необходимых языка? Постоянно возникает необходимость в выборе между английским/русским/украинским языками. Но часто один из них отсутствует в начале списка и приходится искать его среди огромного количества никогда не используемых языков.

Если мы откроем диалоговое окно "Язык" (Word 2003: меню Сервис - Язык - Выбрать язык; Word 2007: вкладка Рецензирование - группа команд Правописание), то увидим в самом верху списка два языка: русский и английский (Это так у меня. У вас могут быть другие языки.)
В редакторе Word 2007 быстро открыть диалоговое окно "Язык" можно путем двойного щелчка мышью на панели Язык в строке состояния.
Удалить все неиспользуемые языки - под чертой - не удастся. Но можно добавить в верхний список только нужные вам (используемые) языки, в вашем случае русский, английский и украинский. Вот, что в итоге получилось у меня (рисунок).

Для начала необходимо настроить параметры языковой службы в вашей операционной системе: добавить нужные языки. Откройте диалоговое окно "Язык и региональные стандарты" (кнопка ПУСК - Настройка - Панель управления), перейдите на вкладку Языки и нажмите кнопку Подробнее. Откроется другое диалоговое окно "Языки и службы текстового ввода". На вкладке Параметры просмотрите, какие языки у вас установлены. Если нужного языка нет,то нажмите кнопку Добавить и добавьте ваш язык.

Далее, в зависимости от версии используемого пакета Office, откройте диалоговое окно "Языковые параметры Microsoft office 2003" (Пуск - Программы - Microsoft Office - Средства Microsoft Office) или диалоговое окно "Microsoft Office 2007. Языковые параметры". На вкладке Доступные языки выберите и добавьте нужный язык во вторую панель (рисунок).

Перезагрузите редактор и откройте диалоговое окно "Язык". Что получилось в итоге, вы можете видеть на скриншоте в начале заметки.
Оставить комментарий | Задать вопрос

Расцвечивание отдельных ячеек в таблице

Тимофей спрашивает:
Как сделать условное форматирование в таблице Word: при значении "ready" - красить ячейку в зеленый цвет, при значении "on goning" - в желтый, и при других значениях - в красный? В Excel это называется условным форматированием. В Word найти такого не смог.

Тимофей, если вы хотите делать это автоматически, то вам нужно использовать макрос, который бы проверял каждую ячейку таблицы и, найдя определенное слово в ней, заливал бы эту ячейку нужным цветом. В принципе это несложно реализовать с помощью следующего макроса.
Sub cellscolor()
'Расцвечивание отдельных ячеек в таблице в зависимости от текста в этих ячейках
'Помощь Steven Craig Miller 
Dim rngTable As Range
Dim oTable As Table
Dim oRow As Row
Dim oCell As cell
Dim sStr As String
Set rngTable = Selection.Range
Set oTable = Selection.Tables(1)
If Not rngTable.Information(wdWithInTable) Then
 MsgBox prompt:="Курсор находится вне таблицы"
Else
   With oTable
      For Each oRow In .Rows
         For Each oCell In oRow.Cells
            oCell.Shading.BackgroundPatternColor = wdColorRed  'заливаем все ячейки одним цветом
            sStr = oCell.Range.Text
            'помимо текста ячейка всегда содержит два дополнительных символа
            'в конце. Эти символы нужно исключить, что и делает сл.оператор
            sStr = Left(sStr, Len(sStr) - 2)
            Select Case sStr
               Case "ready"
                  oCell.Shading.BackgroundPatternColor = wdColorGreen   'зеленым
               Case "on goning"
                  oCell.Shading.BackgroundPatternColor = wdColorYellow  'желтым
            End Select
         Next oCell
      Next oRow
   End With
End If
End Sub
Оставить комментарий | Задать вопрос

Полезные ссылки

Информация об авторских правах

Вся информация, представленная на сайте WordExpert.ru и в этой рассылке, никаким образом не связана с корпорацией Microsoft. В рассылке упоминаются компании и продукты, которые могут быть зарегистрированными торговыми марками и принадлежать различным физическим и юридическим лицам как на территории РФ, так и за ее пределами.

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

Все материалы, опубликованные на сайте WordExpert.ru и в этой рассылке, представлены на информационной основе. Вы можете использовать любую информацию с сайта WordExpert.ru или из данной рассылки исключительно на свой страх и риск. Тем не менее, я рекомендую перед применением какой-либо информации с сайта WordExpert.ru или из данной рассылки обязательно сохранять и создавать резервные копии ваших документов.

В этой рассылке также упоминаются различные web-страницы с соответствующими ссылками. Эти ссылки указываются исключительно в информационных целях и никакой рекомендации или одобрения с моей стороны данных веб-страниц не подразумевается, если не указано иное.


В избранное