• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Не получается вывод на печать указанных страниц

  • Автор темы Guest
  • Дата начала
G

Guest

Нужно вывести на печать определенную последовательность страниц в документе Word.
Макрос формирует нужную последовательность в виде строки.
Я пробовал проделать все в режиме записи макроса. Нажимаю Файл - Печать - Указанные страницы , копирую туда нужные и отправляю на печать.
Смотрю получившийся макрос - там используется функция PrintOut где страницы указываются в виде Page:="1,2,10,18" и т.д.

Если я в качестве параметра использую уже готовую строку с нужной нумерацией
Page:=СтраницыДляПечати (где СтраницыДляПечати это строка "1,2,10,18" )
- ничего не работает. Выдается ошибка - несовместимость типов.

Помогите пожалуйста решить эту проблему.
Заранее очень благодарен.
 
T

Tanya

страницы указываются в виде Page:="1,2,10,18"
точнее: страницы указываются в виде Pages:="1,2,10,18"

если проблема не в пропущенной букве (что скорее всего нет, потомучто возникает другая ошибка),
то неплохо было бы видеть кусок кода, гда есть объявления используемых переменных,
присвоение им значений и непосредственно вызов функции PrintOut
 
G

Guest

Объявления переменных нет.
СтраницыДляПечати - это элемент формы textBox
в отладчике смотрел - СтраницыДляПечати формируется нормально и при печати она тоже берется как раз как нужна - тот самый порядок страниц.
ну а формируется примерно так:

Строка = Строка + "," + Str(М + 1) + "," + Str(Н - 1)
СтраницыДляПечати = Строка;

Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:= _
СтраницыДляПечати _
, PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, _
Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0 _
, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0


Спасибо большое, Таня, ты меня натолкнула на мысль - и все получилось.
Я внутри обработчика кнопки описал строковую переменную и ей присвоил значение textbox СтраницыДляПечати.text - сразу же все заработало.
Только теперь передо мной встала другая задача. Пока Форма, из которой происходит вызов этой печати, не закрыта, ничего не происходит. Должно появится сообщение "поля раздела 1 выходят за границы области печати. Продолжить?". Но пока сделанная мною форма открыта это сообщение не выходит и соответственно печать не происходит. Можно ли как-то сделать, чтобы моя форма была открыта, и в тоже время word вел себя обычно (раскованно).

Заранее большое спасибо.
 
T

Tanya

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

но здесь есть одно но: если в процессе работы с формой тебе не нужно, что бы пользователь переходил
в документ, правил его, открывал другие окна ворда,
то этот вариант не подходит, поскольку это свойство нельзя изменить программно

возможно есть и другие варианты (один я знаю точно при помощи АПИ :))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!