Печать части UserForm в VBA Excel

 
0
 
MS Office, Open Office, etc.
ava
akizelokro | 30.03.2013, 08:33
С помощью функций Win32 я отрисовываю на форме макроса VBA график (требуется по ТЗ и потому что лучше ничего не нашел, в VB.NET есть стандартный элемент PictureBox с возможностями рисования, как вставить MS Chart на форму макроса, я тоже не понял, так что сделал так). Стоит задача распечатать этот график, а если получится, то ещё и каким-то боком перед графиком вывести и данные (которые я до этого уже записал в n x n элементов формы Labels (по идее, и их тоже можно было сделать отрисовать через Win32, но что сделано, то уже сделано).
Насколько я понимаю, если эту задачу печати и можно реализовать, то надо либо писать вывод для печати напрямую в hDC принтера либо ставить другой компонент для печати и всё равно писать в hDC. Или опять лезть через Win32 API?
Подскажите свои соображения. В VBA я достаточно новичок и поэтому мог проглядеть более эффективные решения.
Kommentare (1)
ava
akizelokro | 31.03.2013, 21:01 #
Пока сам не забыл. hDC, либо работа через application.ActivePrinter это всё можно.
по ссылке http://vbrus.narod.ru/Info2.htm пример для VB.Net, скорее всего.
А так я нашёл штатный метод PrintForm.
А задача распечатки части формы решилась достаточно просто, хоть и левым методом. Мне хотелось ещё цвет поменять на белый, на рабочей форме это было не желательно, так что я создал ещё одну форму, с белым фоном и обрезал по нужному размеру, скопировал оставшиеся элементы, заменил и у них фон на белый, и вместе с отрисовкой, не отображая эту вторую форму, вывел её на печать.

Способ левый, но забавный.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden