Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/27: Рейтинг темы: голосов - 27, средняя оценка - 4.52
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321

Как програмно избавиться от сообщения при печати?

11.08.2010, 19:46. Показов 6048. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда при помощи ВБА посылаю документ на печать, получаю иногда ссобщение:
Поле раздела 1 выходит за границы печати, продолжить?
Я всегда нажимаю Да. Вопрос в следующем, как програмно избавиться от этого сообщения при печати документа??
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2010, 19:46
Ответы с готовыми решениями:

Как избавиться от рамки при печати?
Распечатываю рисунок. На экране все нормально. Распечатываю - появляется белая рамка по периметру. Как ее убрать? Она бесит меня!

При использовании print() как избавиться от выскакивающего сообщения
Для печати окна использую код: <script> function quest() {if(confirm("Хотите напечатать страницу ?")) window.print() else ...

Как избавиться от сообщения "Разрешить следующей программе внести изменения в компьютер?" при запуске скрипта?
создал файл со скриптом и кинул в автозагрузки, но при старте системы, когда запускается этот скрипт, выскакивает сообщение с...

25
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
11.08.2010, 20:23
Ципихович Андрей,
вот такая идея есть:
Visual Basic
1
2
3
4
5
Sub m_1()
Application.DisplayAlerts = wdAlertsNone
ActiveDocument.PrintOut
Application.DisplayAlerts = wdAlertsAll
End Sub
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
13.08.2010, 04:52  [ТС]
К сожалению строку кода ActiveDocument.PrintOut
Я никогда не использую, вместо неё пользуюсь, этой строкой:
Visual Basic
1
2
3
Application.PrintOut fileName:="", Range:=wdPrintSelection, Item:=wdPrintDocumentContent, Copies:=Количество_копий, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0 'печать копий ... штук (штуки) Copies:= ...
И в данном случае представленный Вами скрипт не пешает вопрос с выводом сообщения
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
13.08.2010, 07:53
Ципихович Андрей,
выложи тот код, который ты используешь.
То, что ты выложил, не является кодом - просто какой-то пример.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 07:05  [ТС]
Изначально имеете выделенный текст в документе Ворда и прогоняете этот код и получаете всё тоже сообщение Продолжить
Visual Basic
1
2
3
4
5
6
Количество_копий = 1
Application.DisplayAlerts = wdAlertsNone
Application.PrintOut fileName:="", Range:=wdPrintSelection, Item:=wdPrintDocumentContent, Copies:=Количество_копий, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0 'печать копий ... штук (штуки) Copies:= ...
Application.DisplayAlerts = wdAlertsAll
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 07:58
Ципихович Андрей,
Вот эта часть кода не даёт это сделать:
Visual Basic
1
Background:=True,
Я просто по одной команде удалял, пока диалоговое окно не перестало появляться.
Если тебе оно не нужно, то удали из кода.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 10:25  [ТС]
Спасибо Ваша правда:
'Background:=True Background - фон отвечает за вывод сообщения Поле раздела 1 выходит за границы печати, продолжить?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 10:31
Ципихович Андрей,
'Background:=True Background - фон отвечает за вывод сообщения Поле раздела 1 выходит за границы печати, продолжить?
Не знаю, не вдавался в подробности. К тому же в VBA у меня многое не работает (что должно работать; или работает, но не правильно - уже вошло в порядок вещей), поэтому ничего не могу сказать конкретного.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 10:57  [ТС]
тем не менее это так и проверено на практике уже двух лиц
А что на Ваш взляд самое вопиющее в ВБА, что не работает или неправильно?
Вообще то всему есть объяснение
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 11:10
Ципихович Андрей,
сейчас пытался привести примеры проблем, которые у меня возникали, но всё работает, а раньше не работало.
Ещё такая ситуация была, что я на форуме общаюсь, выкладываю коды - у меня не работают, а др. работают.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 11:21  [ТС]
в таких случаях я рассуждаю так - хрен знает почему не работает сегодня, ведь вчера работало, видимо работает по чётным или по нечётным ))
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 11:43
Ципихович Андрей,
вот пример вспомнил, может будет тяжёл для восприятия:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub m_1()
Dim oSection As Section
Dim oHeaderFooter As HeaderFooter
For Each oSection In ActiveDocument.Sections
    For Each oHeaderFooter In oSection.Headers
        oHeaderFooter.LinkToPrevious = False
        oHeaderFooter.Range.Fields.Unlink
    Next
Next
End Sub
Смысл в чём. В документе 5 разделов. В каждом разделе есть верхний колонтитул, содержащий названия раздела (Заголовок 1). Во всех верхних колонтитулах стоит "Как в предыдущем". Я вручную вставляю в один верхний колонтитул поле "StyleRef" с указанием ссылаться на Заголовок 1. В результате во всех верхних колонтитулах будет текст Заголовка 1 из первого раздела.
Моя задача сделать так, чтобы в каждом разделе колонтитул содержал название своего раздела.
Дальше идут команды из кода. Я убираю во всех верхних колонтитулах "Как в предыдущем", а затем удаляю поля (так надо).
В результате выполнения этого кода все верхние колонтитулы имеют название одного раздела - тот который отображался на экране при запуске макроса.
Из-за такой работы VBA, я разбил модуль на две процедуры: одна убирает "Как в предыдущем" во всех верхних колонтитулах. А затем с помощью др. процедуры прохожусь по каждому верхнему колонтитулу и выполняю команду "Удалить поле".

Добавлено через 16 минут
Вот ещё пример:
Вставляю курсор в таблицу - Таблица - Автоподбор по ширине окна - Окей.
Захожу в свойства таблицу - видим "Ширина 100%" - выбираю "Сантиметры" - Окей.
Выполняю код по преобразованию единиц измерения таблицы из сантиметров в проценты:
Visual Basic
1
2
3
Sub m_1()
Selection.Tables(1).PreferredWidthType = wdPreferredWidthPercent
End Sub
Заходим в свойства таблицы и видим не 100% процентов, как должно быть.

Вот ещё пример. Таким образом можно все таблицы удалить в документе, а гиперссылки нет:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub m_1()
Dim oTable As Table
Dim oHyperlink As Hyperlink
For Each oTable In ActiveDocument.Tables
    oTable.Delete
Next
For Each oHyperlink In ActiveDocument.Hyperlinks
    oHyperlink.Delete
Next
End Sub
Вот уже 3 примера привёл.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 11:52  [ТС]
по первому с колонтитулами никогда не работал, а также не уважаю For Each
привык считать прежде
ыы = ActiveDocument.Sections.Count
оо = ActiveDocument.Sections(1).Headers.Count в чистом листе получил ответ 3 удивился???????
По второму согласен с таблицами непонятка и у меня бывает! что касается ширины столбцов
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 12:00
Ещё у меня после завершения процедуры не обнулялись переменные, объявленные в модуле. Эти переменные были связаны с выводом сообщений в MsgBox, в результате накапливался текст в MsgBox. Я потом перенёс переменные из модуля в каждую процедуру.

Добавлено через 6 минут
Цитата Сообщение от Ципихович Андрей Посмотреть сообщение
в чистом листе получил ответ 3 удивился???????
каждый раздел имеет 3 колонтитула, из которых может быть виден на экране только один: колонтитул первой страницы, обычный колонтитул, колонтитул чётной/нечётной страницы.
В этом случае ты не прав.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 12:09  [ТС]
По этому:
Вот ещё пример. Таким образом можно все таблицы удалить в документе, а гиперссылки нет:
Приложите пжл файл где такое есть
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 12:15
Вот пример. Примени к нему код, который я написал.
Вложения
Тип файла: doc Удаление гиперссылок и таблиц.doc (26.0 Кб, 12 просмотров)
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 12:40  [ТС]
Любите фор еахи сделаете под себя:
Количество_ссылок = ActiveDocument.Hyperlinks.Count
For q = 1 To Количество_ссылок
ActiveDocument.Hyperlinks(1).Delete
Next
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 12:42
Ципихович Андрей,
я умею удалять гиперссылки, здесь речь о том, что ситуации похожие, но работают коды по-разному.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,321
14.08.2010, 13:02  [ТС]
ситуации похожие, но работают коды по-разному Для меня потаённый смысл
В Вашем конкретном файле по коду:
Visual Basic
1
2
3
4
Dim oHyperlink As Hyperlink
For Each oHyperlink In ActiveDocument.Hyperlinks
    oHyperlink.Delete
Next
удаляет одну ссылку!!
В моём две
Visual Basic
1
2
3
4
Количество_ссылок = ActiveDocument.Hyperlinks.Count
For q = 1 To Количество_ссылок
ActiveDocument.Hyperlinks(1).Delete
Next
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.08.2010, 13:06
Ципихович Андрей,
да я и сам не разбираюсь, просто как кубики подставляю.
Visual Basic
1
2
FOR Each oHyperlink In ActiveDocument.Hyperlinks
    oHyperlink.Delete
в переводе с английского: для каждой гиперссылки в текущем документе - гиперссылку удалить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2010, 13:06
Помогаю со студенческими работами здесь

Отмена команды не выводить сообщения при печати
здравствуйте, строка кода как мёртвому припарка 'Background - фон, фоновая печать 'Application.DisplayAlerts = wdAlertsAll 'отмена...

Подхватил какое-то вирус, при печати сообщения в скайпе
Подхватил какое-то вирус, при печати сообщения в скайпе курсор слетает с скайпа, и чтобы дальше начать писать нужна снова перейти на набор

Как избавиться от сообщения об script ошибке в WebBrowser?
Помогите, люди добрые! :) В своей програмке использую компонент WebBrowser. Проблемма вот в чем: при навигации по некоторым сайтам...

как избавиться от сообщения блокирующего вход в систему?
находясь в инете у меня вдруг выскочило сообщение :на вашем компе установлен блокирующий рекламный модуль ,действующий в течении 30...

Как избавиться в ЛС от +- которые открывают и закрывают сообщения?
Добрый день! подскажите пожалуйста как избавиться в ЛС от +- которые открывают и закрывают сообщения , ну и походу сообщения находится в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru