Макровирусы на VBA

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
JRazor
Сообщения: 2
Зарегистрирован: 08 дек 2012, 23:39

Помогите пожалуйста, уважаемые форумчане. Возникла проблема с задачами, а я не учил никогда VB. Задачи покажутся вам легкими, а для меня - это сущий ад и много потерянного времени, которого и так мало...

И так, по делу. Как реализовать следующее:

1) Для MSWord. При попытке напечатать файл, в активный документ вставляет строку, содержащую имена открытых на данный момент документов, а также имя пользователя и вызывает диалоговое окно сохранения файла.

2) Для MSExcel. Создает надпись в центре листа (используя объект WordArt).

Всех благодарю заранее. Убедительная просьба, помочь.
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

1) Скопировать в модуль ThisDocument шаблона Normal.dot, сохранить изменения и перезапустить MS Word (или просто "выполнить" событие Document_Open)

Код: Выделить всё

Private WithEvents objWordApp As Word.Application

Private Sub Document_Open()
    Set objWordApp = Word.Application
End Sub

Private Sub objWordApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    'Cancel = True 'раскомментируйте, если нужно отменить печать
    
    Dim objWordDoc As Word.Document, strLine As String
    For Each objWordDoc In objWordApp.Documents
        strLine = strLine & objWordDoc.Name & vbNewLine
    Next
    strLine = strLine & objWordApp.UserName & vbNewLine
    
    ActiveDocument.Range(Start:=0, End:=0).InsertParagraphBefore
    ActiveDocument.Paragraphs(1).Range.Text = strLine
    
    'With ActiveDocument
    '     .Paragraphs.Add(.Range(Start:=0, End:=0)).Range.Text = strLine
    'End With

    objWordApp.Dialogs(wdDialogFileSaveAs).Show
    'objWordApp.FileDialog(msoFileDialogSaveAs).Show
End Sub
JRazor
Сообщения: 2
Зарегистрирован: 08 дек 2012, 23:39

pashulka писал(а):1) Скопировать в модуль ThisDocument шаблона Normal.dot, сохранить изменения и перезапустить MS Word (или просто "выполнить" событие Document_Open)

Огромное спасибо) Вы мне жизнь спасли. Как поднять вам репутацию? Не вижу кнопки...
Ответить