Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.09.2008, 03:17   #1
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию Сохранение документа при печати

Здравствуйте не могли бы помочь..
проблемма в следующем нужно чтоб при отправке на печать документа файл сохранялся в другой папке

Это в ThisDocument

Код:
		Dim X As New EventClassModule 
 
Private Sub Document_New() 
   Set X.App = Word.Application 
End Sub 
 
Private Sub Document_Open() 
   Set X.App = Word.Application 
End Sub
потом создал новый модуль класса с именем EventClassModule и в нём

Код:
		Public WithEvents App As Word.Application 
____________________________________________________ 
Private Sub app_documentbeforeprint(ByVal Doc As Document, Cancel As Boolean) 
 Dim ntime, fpath, dr, fl As String 
   ' ActiveDocument.path + "\" + ActiveDocument.Name 
   fpaths = "C:\print" + "\" + CStr(Date) 
   If (Len("C:\print" + "\" + CStr(Date)) = 0 Or Err = 76) Then 
   MkDir ("C:\print" + "\" + CStr(Date)) 
   End If 
    Selection.TypeText Text:=CStr(Date) 
    fl = ActiveDocument.Name 
    dr = ActiveDocument.path 
    ntime = Replace(CStr(Time), ":", "-") 
    ChangeFileOpenDirectory "C:\print" + "\" + CStr(Date) + "\" 
    ActiveDocument.SaveAs FileName:=ntime + ".doc" 
  
 ChangeFileOpenDirectory dr 
 ActiveDocument.SaveAs FileName:=fl 
    
End Sub

Вот собссно. Проблемма в том что не создаётся папка с текущей датой в имени, и событие beforeprint обрабатывается при предварительном просмотре, ctrl+p и ессно файл>печать..... А нужно только когда документ уже отправлен на принтер, тоесть перед самой печатью.
Может ктонибудь знает как это решить?

В идеале надо сохранять не весь документ а только то что распечатывается.
vovk вне форума
Старый 12.09.2008, 09:30   #2
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

Естественно папка не будет создаваться,
Цитата:
If (Len("C:\print" + "\" + CStr(Date)) = 0 Or Err = 76) Then
ты проверяешь длину строки, а "C:\print" + "\" уже больше 0

вообще-то для работы с файлами и папками в VBA надо объявлять и использовать API функции, вот примерчик "Просмотр содержимого папки", он заполняет табличку Excel содержимым папки, я думаю разберешься...

по второму вопросу подумаю, возможно надо просто перехватывать поток идущий на принтер и сохранять в файл, если постановка задачи стоит таким образом, то лучше реализовать это без использования VBA, например написать сервис на С или Delphi
Вложения
Тип файла: rar Объявление API.rar (13.1 Кб, 28 просмотров)
madmot вне форума
Старый 12.09.2008, 10:12   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от madmot Посмотреть сообщение
Естественно папка не будет создаваться,

ты проверяешь длину строки, а "C:\print" + "\" уже больше 0
эт да с этим разобрался сказывается обсолютное незнание VBA ^)
Код:
If Dir(myPath, vbDirectory)
Цитата:
Сообщение от madmot Посмотреть сообщение
по второму вопросу подумаю, возможно надо просто перехватывать поток идущий на принтер и сохранять в файл, если постановка задачи стоит таким образом, то лучше реализовать это без использования VBA, например написать сервис на С или Delphi
С этим тоже согласен, с VBA связался только потому что печать будет только с ворд эксель, надеялся найти быстрое решение. На написание чегонить стоящего пока просто нет времени занимаюсь другим проектом. Учился только по книгам, в общем самоучка. Знания соответственно рваные, поэтому для меня написание чего либо сложнее калькулятора уже долгий процесс
vovk вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос сохранения после печати lala_white Microsoft Office Word 2 10.08.2008 12:50
Качество печати Македонский Общие вопросы Delphi 2 14.01.2008 22:46
Процедура печать и настройки печати _Solomon_ Помощь студентам 2 21.05.2007 09:31
Запрет печати vserg4 Microsoft Office Word 4 26.01.2007 20:45