Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB + MS Word 2000 / 11 сообщений из 11, страница 1 из 1
20.07.2004, 11:03
    #32611955
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Подключаю библиотеку MS Word 2000 (9.0) и хочу добавить колонтитул в док, с последующей распечаткой.
Добавляет... и даже печатает... но только один раз! При повторном использовании кода происходит ошибка - ума не приложу, что делать.

Кратко о том, что делает прога.
В опред. папке она в цикле ищет файлы *.doc, добавляет в них колонтитул и отправляет на печать.

Вот код:

'Папка, откуда берём файлы, изменяем, если надо...
Dim MoveFrom As String
MoveFrom = "c:\Mail\In"
fle.Path = MoveFrom
fle.Refresh

Dim xw As New Word.Application

For i = 0 To fle.ListCount - 1
' Если вордовый док, то...
If LCase(Right(fle.List(i), 4)) = ".doc" Then

' открываем
xw.Documents.Open MoveFrom + "\" + fle.List(i)

' и добавляем колонтитул

With xw
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
.Selection.WholeStory
.Selection.Delete wdCharacter, 1
.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

With .ActiveDocument.PageSetup
.FooterDistance = CentimetersToPoints(0.6)
.DifferentFirstPageHeaderFooter = True
.RightMargin = CentimetersToPoints(1)
End With

If .ActiveDocument.PageSetup.Orientation = wdOrientLandscape Then
ot = 24.5
Else
ot = 15.8
End if

rf = PointsToCentimeters(.ActiveDocument.PageSetup.LeftMargin)
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

With .Selection
.ParagraphFormat.LeftIndent = CentimetersToPoints(ot - rf)
.ParagraphFormat.RightIndent = CentimetersToPoints(-0.3)
.Borders.Enable = True
.Font.Size = 6
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText Text:="Государственное учреждение" + Chr(11)
.Font.Bold = True
.TypeText Text:="Вх. № "
.TypeText Text:="Дата " & Date
End With

.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End With

' Закончили с колонтитулом
End If

' Печатаем
xw.PrintOut
xw.Documents.Close False
Next i
xw.Quit
Set xw = Nothing

Добавьте на форму FileListBox, обзовите fle
Добавьте на форму кнопку, вставьте код в событие Click

Если у кого-нить есть время и желание помочь, буду очень благодарен!
Гуру VB, отзовитесь...
...
Рейтинг: 0 / 0
20.07.2004, 15:11
    #32612860
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Какая ошибка?
Magnus
...
Рейтинг: 0 / 0
20.07.2004, 16:28
    #32613158
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Удалённый сервер не существует или недоступен. Что-то вроде этого... См. картинку :-)
...
Рейтинг: 0 / 0
20.07.2004, 16:31
    #32613161
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Картинка... А где же картинка???
...
Рейтинг: 0 / 0
20.07.2004, 18:17
    #32613463
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
На какой строке конкретно? При открытии днового дока или на печати?

Magnus
...
Рейтинг: 0 / 0
21.07.2004, 09:43
    #32613964
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Сразу после начала добавления колонтитула, когда начинается установка параметров страницы, т.е. в этом месте

' и добавляем колонтитул

With xw
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
.Selection.WholeStory
.Selection.Delete wdCharacter, 1
.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

Попробуй провести живой эксперимент, будет понятней. Даже если опустить установку параметров, прога начнёт ругаться на след строки и так далее, пока не уберёшь весь код добавления колонтитула.
Что делать? Хэээээлп!!!
...
Рейтинг: 0 / 0
21.07.2004, 12:16
    #32614385
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
CentimetersToPoints Заменить на xw .CentimetersToPoints
PointsToCentimeters Заменить на xw .PointsToCentimeters
...
Рейтинг: 0 / 0
21.07.2004, 14:04
    #32614744
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Странно, но у меня отработало без звука. Разве что иногда кричал, мол не закрывай документ я еще печатаю.

Оффис 2К.

Magnus
...
Рейтинг: 0 / 0
21.07.2004, 14:50
    #32614923
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Да я о чём и говорю!!! Работает нормально! Но только один раз! Не завершая прогу, повтори операцию - вылетит ошибка! Что за дела?
...
Рейтинг: 0 / 0
21.07.2004, 15:39
    #32615097
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Да действительно.
Теперь понятно что происходило.
CentimetersToPoints метод принадляжал предыдущему открытому документу и естественно при повторном вызове его уже не существовало.
Поэтому правильно е решение - то что подсказал РА.

Magnus
...
Рейтинг: 0 / 0
22.07.2004, 10:13
    #32616209
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB + MS Word 2000
Блин, как просто и как гениально!
Я уже все копья поломал - думал, кранты...
Спасибо РА, спасибо Magnus23
Всё фунциклирует!!! Ура!!!

Тема закрыта...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB + MS Word 2000 / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]