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

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


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

Выпуск рассылки №143 от 2010-04-18 09:25

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

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

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

Если у вас есть вопросы по эффективному использованию редактора Word, задавайте их на форуме.

Определяем тип графического объекта и его размеры

Заметка навеяна поиском решения (см. комментарий) для применения к рисункам заданного размера по высоте. Под рисунком мы будем в общем случае понимать графический объект в тексте документа. Это может быть как вставленная в документ картинка, фотография (тип InlineShape), так и нарисованная средствами редактора Word диаграмма, автофигура или иной объект. Более подробную информацию о видах рисунков в Word можно почитать на официальном сайте Microsoft (ссылка).

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

Чтобы получить информацию о рисунке, необходимо выделить его и применить макрос:
Sub getSizesImage()
'Определение типа графического объекта и его размеров (высоты и ширины)
Dim h As Single
Dim w As Single
Dim hSp As Single
Dim str As String
Dim strSize As String
With Selection
  Select Case .Type
    Case Word.WdSelectionType.wdSelectionInlineShape
      'получаем высоту объекта
      h = Round(PointsToCentimeters(.InlineShapes(1).Height), 1)
      'получаем ширину объекта
      w = Round(PointsToCentimeters(.InlineShapes(1).Width), 1)
      str = "Это рисунок (InlineShape)." & vbCr & "Его высота: " & h & " см, ширина: " & w & " см"
    Case Word.WdSelectionType.wdSelectionShape
      'получаем высоту объекта
      h = PointsToCentimeters(.ShapeRange(1).Height)
      'получаем ширину объекта
      w = PointsToCentimeters(.ShapeRange(1).Width)
      str = "Это объект (Shape)." & vbCr & "Его высота: " & h & " см, ширина: " & w & " см"
    Case Else
      str = "Это не графический объект"
  End Select
End With
MsgBox str
End Sub
Оставить комментарий | Задать вопрос

Вставка документа с книжной ориентацией в документ с альбомной ориентацией

Сергей интересуется: Имеется 2 документа word 2007. В первом документе имеется только один лист с текстом. Формат этого листа - книжный. Этот лист является 1-м листом 2го докумнета.
Второй документ - основной. В нем имеется несколько страниц с разлиным форматированием листа, т. е. есть листы книжной раскладки, есть листы альбомной раскладки. И начинается 2-ой документ как раз с альбомного листа.
Вопрос: Как мне вставить лист из 1го документа во второй, таким образом чтобы при вставке этот лист не изменял автоматически свою ориентацию на альбомную?


Сергей, решить эту проблему можно с помощью макроса.
Вам нужно открыть ваш основной документ (2-й документ), запустить макрос, выбрать нужный файл и он будет вставлен в качестве 1-й страницы книжного формата вашего основного документа.
Вот код макроса:
Sub insPortretToAlbum()
'Вставка документа с книжной ориентацией в документ с альбомной ориентацией
Dim fileDlg As FileDialog
Dim fName As String
Set fileDlg = Application.FileDialog(msoFileDialogOpen)
With fileDlg
   If .Show = -1 Then
      fName = .SelectedItems(1)
   End If
End With
With Selection
   .HomeKey Unit:=wdStory, Extend:=wdMove
   .InsertFile fName
   .InsertBreak Type:=wdSectionBreakNextPage
   .HomeKey Unit:=wdStory
   .PageSetup.Orientation = wdOrientPortrait
End With
End Sub
Оставить комментарий | Задать вопрос

Проверка орфографии и сохранение по запросу

Максим задал вопрос:
При наборе текста я работаю с выключенной автопроверкой орфографии, чтобы подчеркивание эстетику письма не нарушало и с мыслей не сбивало. Проверяю орфографию после завершения редактирования. Но иногда я забываю это сделать.
Можно ли сделать так, чтобы word 2007 перед тем, как я собрался сохранить или выйти из документа, автоматически меня спрашивал - проверить ли орфографию и чтобы после проверки орфографии еще спрашивал - сохранять документ или нет?


Вот пример мини-программы (состоит из трех отдельных макросов). Подключите их к шаблону Normal.dotx и при сохранении, или при закрытии документа будет выводиться запрос.
Sub FileSave()
  Call DoYouWantToCheckGrammar
  If ActiveDocument.Saved = False Then ActiveDocument.Save
End Sub
Sub AutoClose()
  Call DoYouWantToCheckGrammar
End Sub
Sub DoYouWantToCheckGrammar()
  Dim Response As String
  Response = MsgBox("Проверить грамматику в документе?", 1 + 32, "Запрос")
  If Response = 1 Then ActiveDocument.CheckGrammar
End Sub
Оставить комментарий | Задать вопрос

О форматировании отдельных символов

Юрий интересуется:
Предположим, что часить слова написана полужирым шрифтом, а часть - обычным. Выделив слово и нажав кнопку И (или клавиши «Ctrl+B») мы приведём всё слово к полужирному начертанию. Нажав ещё раз - к обычному и т.д.
Существует ли способ переключить начертание, чтобы те буквы (не слова), что были жирными, стали обычными, а обычные - жирными?


Юрий, вот примеры макросов для ваших целей, подсказанные Александром Витером .

Макрос для одного слова, в котором находится курсор ввода
Sub inversWord()
'Инвертирование полужирного начертания слова
Dim oChar As Range
Selection.Words(1).Select
For Each oChar In Selection.Characters
  oChar.Font.Bold = Not oChar.Font.Bold
Next
Selection.Collapse wdCollapseEnd
End Sub
Макрос для документа в целом (обрабатывает все такие слова)
Sub InvertBold()
'Инвертирование полужирного начертания слов во всем документе
  Dim oChar As Range, iStart&, bFound As Boolean
  bFound = True
  Do While bFound
    bFound = False
    With ActiveDocument.Range(iStart, ActiveDocument.Range.End).Find
      .Text = "*"
      .Font.Bold = True
      .MatchWildcards = True
      .Execute
      If .Found Then
        For Each oChar In .Parent.Words(1).Characters
          oChar.Font.Bold = Not oChar.Font.Bold
        Next
        iStart = .Parent.Words(1).End
        bFound = .Found
      End If
    End With
  Loop
End Sub
Оставить комментарий | Задать вопрос

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

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

Авторские права на все материалы, опубликованные на сайте WordExpert.ru принадлежат мне - Кокину Антону Вадимовичу, если не указано иное, и охраняются Законом РФ "Об авторском праве и смежных правах".
Перепечатка материалов сайта в оффлайн-изданиях (журналы, газеты, книги и др.) без согласования с Кокиным Антоном Вадимовичем запрещена. Разрешается перепечатывать материалы сайта в онлайн-изданиях при условии сохранения имени автора и наличия гиперссылки на www.wordexpert.ru.
Все материалы, опубликованные на сайте WordExpert.ru, представлены на информационной основе - "как есть". Вы можете использовать эти материалы исключительно на свой страх и риск. Тем не менее, я настоятельно рекомендую перед применением какой-либо информации с сайта WordExpert.ru обязательно сохранять и создавать резервные копии документов, с которыми вы работаете.


В избранное