Dr.DG,
вот что мне удалось сделать на текущий момент времени:
Код:
Private Sub CommandButton1_Click()
Dim lNumber As Long
Dim i As Long
'Помещаем в переменную lNumber, с какого номера
'должна начинаться нумерация бланков.
lNumber = Me.TextBox1.Value
'проверяем на согласие с условием
If CheckBox1.Value = False Then
'выводим сообщение
MsgBox "Ошибка!" & " " & "Необходимо принять условие."
Else
'Делаем столько витков цикла, сколько бланков необходимо вывести на печать.
For i = 1 To Me.TextBox2.Value Step 1
Dim oDoc As Document
Set oDoc = Application.Documents.Add("C:\Primer\BLANK.docm")
'Помещаем в закладку "bN_1" данные из переменной lNumber.
oDoc.Bookmarks("bN_1").Range.Text = lNumber + (i - 1)
'Помещаем в закладку "bN_2" данные из переменной lNumber.
oDoc.Bookmarks("bN_2").Range.Text = lNumber + (i - 1)
'Помещаем в закладку "bN_3" данные из переменной lNumber.
oDoc.Bookmarks("bN_3").Range.Text = lNumber + (i - 1)
'Помещаем в закладку "bN_4" данные из переменной lNumber.
oDoc.Bookmarks("bN_4").Range.Text = lNumber + (i - 1)
'Распечатываем.
Application.PrintOut Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=True, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
'Скрываем пользовательскую форму
UserForm1.Hide
Next i
End If
End Sub
Здесь представлен работающий код, теперь уже с пользовательской формой (в которой TextBox1 и TextBox2 для ввода значений, CheckBox1 для принятия условия, а также кнопка CommandButton1, которая является основной).
По-прежнему есть некоторые моменты, которые хотелось бы улучшить:
1 - в документе "BLANK.docm", над которым и проводятся все действия, имеется 4 закладки на 4 одинаковых числа, которые начинаются с цифры "ноль". Например, 012222. Так вот сейчас я вынужден был перед каждой закладкой поместить цифру "ноль",а в поле TextBox1 пользовательской формы UserForm1 вбивать значение без цифры "ноль", например 12222.
Можно ли сделать так, чтобы в поле TextBox1 я вносил значение например 012222, в поле TextBox2 я вносил значение например 2 и при этом происходила правильная отработка "lNumber + (i - 1)" и на печать выводились документы с изменёнными номерами - 012222 в первом документе и 012223 во втором документе?
2 - во время выполнения кода открываются новые вкладки с документами, с изменёнными номерами. Как избавиться от этого, чтобы ничего не появлялось, а просто в очередь печати все документы складывались сразу и всё?
3 - необходима двусторонняя печать документа "BLANK.docm". Принтер обладает необходимой функцией.