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

Тема в разделе "Visual Basic", создана пользователем -, 4 июн 2008.

  1. Гость

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

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

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

    Tanya Гость

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

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

    Объявления переменных нет.
    СтраницыДляПечати - это элемент формы 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 вел себя обычно (раскованно).

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

    Tanya Гость

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

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

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

Поделиться этой страницей