Dim X As New Class1
Private Sub Document_New()
Set X.App = Word.Application
End Sub
Private Sub Document_Open()
Set X.App = Word.Application
End Sub
Печать из-под Word
В Excel, это есть, Private Sub Workbook_BeforePrint(Cancel As Boolean). Функция очень удобна, она позволяет отменить печать документа, если что не так с настройками. А как реализовать это в Word? И желательно прописать это в normal.dot, чтоб для всех доков работало. И кстати ещё один вопрос, есть ли у Excel, аналог normal.dot, чтоб макрос работал для любого файла xls?
Не буду пересказывать help по MS Word.
Сам почитай - тебе нужно два пункта в help'е:
1) DocumentBeforePrint Event
2) Using Events with the Application Object
Насчет глобального макроса в Excel - чо-то ничо в голову не приходит. Придет - поделюсь:)
Это в normal.dot
Код:
А это в Class Module
Код:
Public WithEvents App As Word.Application
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Cancel = True
End Sub
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Cancel = True
End Sub
Одна проблема, если я запускаю сам Word, новый док, он распечатывается. Если же открываю уже имеющийся, печать не пойдёт.
Как сделать печать невозможной в любом случае?
Допускаю, что сам код верный, а просто глюки винды.
Создаешь новую книгу. Пишешь в ней нужные макросы, ставишь ее property IsAddIn в true(на вкладке properties в редакторе VBA). Пихаешь ее в папку: "..:\Documents and Settings\..\Application data\Microsoft\Excel\XLSTART\". И все летает:)
У Word'а в принципе есть такая же директория "..\Microsoft\Word\Startup\". Попробуй может через нее с печатью!!