Страница 1 из 1

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

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

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

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

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

Всех благодарю заранее. Убедительная просьба, помочь.

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

Добавлено: 09 дек 2012, 14:25
pashulka
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

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

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

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