- •Лекция 10
- •Объектная модель Word Основы: документы и шаблоны
- •Информация о Normal.Dot
- •Краткий обзор объектной модели Word
- •Объект Application
- •Объект Document
- •Объект Selection
- •Объект Range
- •Объект Bookmark
- •Подведем промежуточный итог
- •Объект Application
- •Использование ThisApplication
- •Свойства Application
- •Методы Application
- •Объект Document
- •Наборы объекта Document
- •Ссылки на документы
- •Создание, открытие и закрытие документов
- •Сохранение документов
- •Объектная модель Excel
Методы Application
У объекта Application есть несколько методов, удобных для выполнения операций с приложением Word. Работа с методами Application аналогична работе с его свойствами. Для операций с самим приложением используйте следующие методы.
CheckSpelling Проверяет провописание в строке текста. Возвращает True, если ошибки найдены, и False, если их нет. Этот метод не сообщает, какие именно ошибки обнаружены, и не позволяет исправить их, но удобен, если вы хотите просто проверить какой-то текст на наличие орфографических ошибок и узнать, есть в нем ошибки или нет. Следующий код проверяет строку "Speling erors here" и выводит результат в MessageBox.
view source
print?
01.' Visual Basic
02.Friend Sub SpellCheckString()
03. ' Проверяет указанную строку на орфографические ошибки
04. Dim str As String = "Speling erors here."
05. If ThisApplication.CheckSpelling(str) Then
06. MessageBox.Show(String.Format("No errors in ""{0}""", str))
07. Else
08. MessageBox.Show(String.Format( _
09. """{0}"" is spelled incorrectly", str))
10. End If
11.End Sub
12.
13.// C#
14.public void SpellCheckString()
15.{
16. // Проверяет указанную строку на орфографические ошибки
17. string str = "Speling erors here.";
18.
19. Object CustomDictionary = Type.Missing;
20. Object IgnoreUppercase = Type.Missing;
21. Object MainDictionary = Type.Missing;
22. Object CustomDictionary2 = Type.Missing;
23. Object CustomDictionary3 = Type.Missing;
24. Object CustomDictionary4 = Type.Missing;
25. Object CustomDictionary5 = Type.Missing;
26. Object CustomDictionary6 = Type.Missing;
27. Object CustomDictionary7 = Type.Missing;
28. Object CustomDictionary8 = Type.Missing;
29. Object CustomDictionary9 = Type.Missing;
30. Object CustomDictionary10 = Type.Missing;
31.
32. // Метод CheckSpelling принимает массу необязательных
33. // параметров
34. if ( ThisApplication.CheckSpelling(str, ref CustomDictionary,
35. ref IgnoreUppercase, ref MainDictionary, ref CustomDictionary2,
36. ref CustomDictionary3, ref CustomDictionary4,
37. ref CustomDictionary5, ref CustomDictionary6,
38. ref CustomDictionary7, ref CustomDictionary8,
39. ref CustomDictionary9, ref CustomDictionary10) )
40. {
41. MessageBox.Show(String.Format("No errors in \"{0}\"", str));
42. }
43. else
44. {
45. MessageBox.Show(
46. String.Format("\"{0}\" is spelled incorrectly", str));
47. }
48.}
Совет Это еще один пример тому, насколько разработчикам на Visual Basic .NET легче, чем разработчикам на C#. Метод CheckSpelling принимает единственный строковый параметр и целый набор необязательных параметров. Из-за этого разработчикам на C# приходится передавать методу целую серию переменных по ссылке - в данном случае группу переменных с одинаковым значением Type.Missing. Наверное, при неоднократном вызове подобных методов удобнее создать вспомогательный класс - оболочку для вызова метода. Такой класс мог бы включать методы, которые предоставляют доступ лишь к наиболее полезным параметрам Word-метода.
Help Отображает диалоговые окна Help. Чтобы выбрать конкретное окно, укажите одно из перечислимых значений WdHelpType:
WdHelp - выводит основное диалоговое окно Help в Microsoft Word;
WdHelpAbout - выводит диалоговое окно, доступное в UI по команде Help | About Microsoft Word;
WdHelpSearch - выводит основное диалоговое окно Help с Answer Wizard.
Следующий код выведет на экран диалоговое окно About Microsoft Word:
view source
print?
01.' Visual Basic
02.Friend Sub DisplayHelpAbout()
03. ThisApplication.Help(Word.WdHelpType.wdHelpAbout)
04.End Sub
05.
06.// C#
07.public void DisplayHelpAbout()
08.{
09. Object value = Word.WdHelpType.wdHelpAbout;
10. ThisApplication.Help(ref value);
11.}
Move Перемещает основное окно приложения на основе обязательных целочисленных аргументов Left и Top.
Resize Изменяет размеры основного окна приложения на основе обязательных аргументов Width и Height (в точках). Вот пример кода, который перемещает окно приложения в левый верхний угол экрана и изменяет размеры этого окна:
view source
print?
01.' Visual Basic
02.Friend Sub MoveAndResizeWindow()
03. ' Этот код не сработает, если окно развернуто во весь экран
04. ' или свернуто
05. ThisApplication.ActiveWindow.WindowState = _
06. Word.WdWindowState.wdWindowStateNormal
07.
08. ' Позиция в левом верхнем углу
09. ThisApplication.Move(0, 0)
10.
11. ' Изменяем размеры на 300 x 600 точек
12. ThisApplication.Resize(300, 600)
13.End Sub
14.
15.// C#
16.public void MoveAndResizeWindow()
17.{
18. // Этот код не сработает, если окно развернуто во весь экран
19. // или свернуто
20. ThisApplication.ActiveWindow.WindowState =
21. Word.WdWindowState.wdWindowStateNormal;
22.
23. // Позиция в левом верхнем углу
24. ThisApplication.Move(0, 0);
25.
26. // Изменяем размеры на 300 x 600 точек
27. ThisApplication.Resize(300, 600);
28.}
Quit Выход из Word. При этом вы можете (необязательно) передать одно из значений из перечислимого WdSaveOptions: wdSaveChanges, wdPromptToSaveChanges или wdDoNotSaveChanges. Следующий фрагмент кода показывает все три варианта выхода из Word:
view source
print?
01.' Visual Basic
02.' Автоматически сохраняем все изменения
03.ThisApplication.Quit(Word.WdSaveOptions.wdSaveChanges)
04.
05.' Выводим запрос на сохранение изменений
06.ThisApplication.Quit(Word.WdSaveOptions.wdPromptToSaveChanges)
07.
08.' Выходим без сохранения изменений
09.ThisApplication.Quit(Word.WdSaveOptions.wdDoNotSaveChanges)
10.
11.// C#
12.// Автоматически сохраняем все изменения
13.Object saveChanges = Word.WdSaveOptions.wdSaveChanges;
14.Object originalFormat = Type.Missing;
15.Object routeDocument = Type.Missing;
16.ThisApplication.Quit(ref saveChanges,
17. ref originalFormat, ref routeDocument);
18.
19.// Выводим запрос на сохранение изменений
20.saveChanges = Word.WdSaveOptions.wdPromptToSaveChanges;
21.originalFormat = Type.Missing;
22.routeDocument = Type.Missing;
23.ThisApplication.Quit(ref saveChanges,
24. ref originalFormat, ref routeDocument);
25.
26.// Выходим без сохранения изменений
27.saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
28.originalFormat = Type.Missing;
29.routeDocument = Type.Missing;
30.ThisApplication.Quit(ref saveChanges,
31. ref originalFormat, ref routeDocument);
Совет Метод Application.Quit - еще один пример из списка методов, требующих особого обращения в C#. В данном случае метод требует передачи трех параметров только по ссылке.