Хабибулин А.
Эта статья будет полезна только тем людям, у которых установлен Microsoft Word 2000 или выше! Мы научимся делать всё возможное с документами MS WORD при помощи VB 2003/2005 .NET.
Подключение библиотеки к проекту
- Создайте проект (Windows Application) В поле Name(Имя) введите Word (можно любое др. имя)
- В меню Project (Проект) выберите меню Add Reference (Добавить ссылку)
- В диалоговом окне Add Reference перейдите на вкладку COM и выберите в списке Microsoft Word 9.0 Object Library (или другую версию, это зависит от того, какая версия MS Word у вас установлена на компьютере), жмёте клавишу Enter
- Всё, библиотека Word уже включена в наш проект!
Работаем с MS Word
- Всё необходимое для работы мы уже сделали теперь для удобства работы с библиотекой Word необходимо ввести в General Declarations код:
Imports Word 'Импортируем пространство имён
Public Class Form1
End Class
|
- Создадим переменную для управления Word`ом:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
applicationWord = New Microsoft.Office.Interop.Word.Application
End Sub
End Class
|
После выполнения кода, открывается приложение MS Word, но оно скрыто, для того, чтобы сделать его видимым впишите в событие Form_Load следующий код:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
applicationWord = New Microsoft.Office.Interop.Word.Application
applicationWord.Visible = True
End Sub
End Class
|
Но управлять содержимым документа MS Word с помощью переменной applicationWord, для управления содержимым документа создадим ещё одну переменную:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Dim documentWord As Microsoft.Office.Interop.Word.Document 'Объявляем переменную для работы с текстом и др. возможностями документа MS Word, например: Создаём таблицы; Меняем размер, цвет шрифта; и.т.д.
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Запускаем приложение MS Word
applicationWord = New Microsoft.Office.Interop.Word.Application
'Делаем приложение MS Word видимым для пользователя (это делать не обязательно)
applicationWord.Visible = True
End Sub
End Class
|
- Теперь создадим документ, дял этого введём следующий код:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Запускаем приложение MS Word
applicationWord = New Microsoft.Office.Interop.Word.Application
'Делаем приложение MS Word видимым для пользователя (это делать не обязательно)
applicationWord.Visible = True
'Объявляем переменную для работы с текстом и др. возможностями документа MS Word, например: Создаём таблицы; Меняем размер, цвет шрифта; и.т.д.
Dim documentWord As Microsoft.Office.Interop.Word.Document = applicationWord.Documents.Add
End Sub
End Class
|
- Всё, документ создан, теперь, попробуем написать в нём что-либо. Для этого воспоьзуемся объектом Range, который находится в переменной documentWord.Range, попробуем вписать туда имя вашего компьютера (только для VB 2005 .Net), для этого впишем следующий код:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Запускаем приложение MS Word
applicationWord = New Microsoft.Office.Interop.Word.Application
'Делаем приложение MS Word видимым для пользователя (это делать не обязательно)
applicationWord.Visible = True
'Объявляем переменную для работы с текстом и др. возможностями документа MS Word, например: Создаём таблицы; Меняем размер, цвет шрифта; и.т.д.
Dim documentWord As Microsoft.Office.Interop.Word.Document = applicationWord.Documents.Add
'Range - это, можно сказать, тело документа имеет все свойства для работы с текстом в документе MS Word
With documentWord.Range
'Устанавливаем имя шрифта
.Font.Name = "Arial"
'Устанавливаем цвет шрифта
.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack
.Font.Size = "12" 'Устанавливаем размер шрифта
'меняем текст документа на традиционную надпись "Привет Мир!!!"
.Text = My.User.Name
End With
End Sub
End Class
|
- Ещё немного об объекте Range. Допустим, нам необходимо вставить текст перед тем текстом который у нас уже есть в документе, или после этого текста, даже может внутри текста, для этого есть дополнительные свойства объекта Range, ниже я привёл примеры вставки текста до, после и внутри уже существующего текста:
Imports Word 'Импортируем пространство имён
Public Class Form1
Dim applicationWord As Microsoft.Office.Interop.Word.Application
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Запускаем приложение MS Word
applicationWord = New Microsoft.Office.Interop.Word.Application
'Делаем приложение MS Word видимым для пользователя (это делать не обязательно)
applicationWord.Visible = True
'Объявляем переменную для работы с текстом и др. возможностями документа MS Word, например: Создаём таблицы; Меняем размер, цвет шрифта; и.т.д.
Dim documentWord As Microsoft.Office.Interop.Word.Document = applicationWord.Documents.Add
'Range - это, можно сказать, тело документа имеет все свойства для работы с текстом в документе MS Word
With documentWord.Range
.Font.Name = "Arial" 'Устанавливаем имя шрифта
'Устанавливаем цвет шрифта
.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack
.Font.Size = "12" 'Устанавливаем размер шрифта
.Text = "KByte.ru"
End With
documentWord.Range(0, 0).Text = "Вас Приветствует " 'До существующего текста
documentWord.Range(Len("KByte.ru") + Len("Вас Приветствует "), Len("KByte.ru") + Len("Вас Приветствует ")).Text = ": Привет!" 'После Существующего текста
End Sub
End Class
|
- Печать содержимого документа производится пр помощи этого кода:
documentWord.PrintOut
- Предварительный просмотр перед печатью производится пр помощи этого кода:
documentWord.PrintPreview()
- Сохранять документ можнно при помощи этого кода:
documentWord.SaveAs(FileName:="C:\MyDocument.doc")
- Выход из MS Word осуществляется при помощи этого кода:
applicationWord.Quit()
Вот в принципе и всё!