powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB + MS Word 2000
11 сообщений из 11, страница 1 из 1
VB + MS Word 2000
    #32611955
Диметр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подключаю библиотеку 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
VB + MS Word 2000
    #32612860
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая ошибка?
Magnus
...
Рейтинг: 0 / 0
VB + MS Word 2000
    #32613158
Диметр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалённый сервер не существует или недоступен. Что-то вроде этого... См. картинку :-)
...
Рейтинг: 0 / 0
VB + MS Word 2000
    #32613161
Диметр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка... А где же картинка???
...
Рейтинг: 0 / 0
VB + MS Word 2000
    #32613463
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На какой строке конкретно? При открытии днового дока или на печати?

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

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

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

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

Оффис 2К.

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

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

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


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