Страницы: 1
RSS
Как распечатать jpeg файл из VBA Excel
 
Уважаемые гуру Excelя!  
Может кто подскажет, как найти а затем и распечатать jpeg и Word файл из VBA Excel?!  
Заранее всем спасибо!
 
Ну неужели никто не знает?!
 
Ну почему же, знаем...  
 
распечатать документ Word из VBA Excel совсем несложно.  
Пример кода есть здесь: http://www.programmersforum.ru/showpost.php?p=333030&postcount=6  
 
С файлами JPEG всё несколько сложнее.  
Поскольку, если в случае с документами Word мы знаем, что на компе присутствует приложение Microsoft Word, то для JPEG на компе могут быть самые разные программы.  
Единственный универсальный способ - вывести JPEG на печать, используя WinAPI вместо графических программ, но для Вас наверняка это будет сложновато...
 
{quote}{login=EducatedFool}{date=30.10.2009 05:38}{thema=}{post}Ну почему же, знаем...  
 
распечатать документ Word из VBA Excel совсем несложно.  
Пример кода есть здесь: http://www.programmersforum.ru/showpost.php?p=333030&postcount=6  
 
С файлами JPEG всё несколько сложнее.  
Поскольку, если в случае с документами Word мы знаем, что на компе присутствует приложение Microsoft Word, то для JPEG на компе могут быть самые разные программы.  
Единственный универсальный способ - вывести JPEG на печать, используя WinAPI вместо графических программ, но для Вас наверняка это будет сложновато...{/post}{/quote}  
 
Я знал что есть умные люди в русских селениях!!!  
Често, про WinAPI ничего не слышал, но очень хочу узнать!!!  
А существует ли готовый VBA код на этот случай?!
 
> А существует ли готовый VBA код на этот случай?!  
Может, и не существует, но его несложно написать.  
 
Я бы выбрал такой вариант:  
1) помещаем рисунок из файла JPG на форму  
2) растягиваем форму под размер рисунка  
3) отправляем форму на печать  
 
Один недостаток - сверху на каждом отпечатанном рисунке будет синяя полоса - заголовок формы  
Но этот недостаток можно легко превратить в "фичу" - выводить в заголовке формы полезную информацию, например, название файла  
 
И код-то простейший - всего 5 строк
 
С тем же успехом можно и на лист жыпег вставлять, затем печатать.  
И проблемы с заголовком не будет.
Bite my shiny metal ass!      
 
Я Вас услышал господа!  
Не сочтите за наглость, а не подскажите в таком случае код из 5 строк для печати с помощью формы, и в случае со вставкой на лист, как обозначить чтобы рисунок печатался только на 1 стронице
 
Sub ВставкаКартинкиНаЛист()  
   ПутьКФайлу = "D:\шедевры\DSC00924.JPG"  
   With Worksheets.Add  
       Set Картинка = .Pictures.Insert(ПутьКФайлу)  
       With .PageSetup  
           .Zoom = False: .FitToPagesWide = 1: .FitToPagesTall = 1  
           .Orientation = IIf(Картинка.Height >= Картинка.Width, xlPortrait, xlLandscape)  
       End With  
       .PrintPreview  
       ' если такой вариант устроит, замените .PrintPreview на .PrintOut  
   End With  
End Sub  
 
 
 
Sub КартинкаНаФорме()  
' кстати, картинка печатается БЕЗ заголовка формы  
   ПутьКФайлу = "D:\шедевры\DSC00924.JPG"  
   UserForm1.Picture = LoadPicture(ПутьКФайлу)  
   UserForm1.PictureSizeMode = fmPictureSizeModeStretch  
   UserForm1.PrintForm  
End Sub
 
{quote}{login=EducatedFool}{date=10.11.2009 08:53}{thema=}{post}Sub ВставкаКартинкиНаЛист()  
   ПутьКФайлу = "D:\шедевры\DSC00924.JPG"  
   With Worksheets.Add  
       Set Картинка = .Pictures.Insert(ПутьКФайлу)  
       With .PageSetup  
           .Zoom = False: .FitToPagesWide = 1: .FitToPagesTall = 1  
           .Orientation = IIf(Картинка.Height >= Картинка.Width, xlPortrait, xlLandscape)  
       End With  
       .PrintPreview  
       ' если такой вариант устроит, замените .PrintPreview на .PrintOut  
   End With  
End Sub  
 
 
 
Sub КартинкаНаФорме()  
' кстати, картинка печатается БЕЗ заголовка формы  
   ПутьКФайлу = "D:\шедевры\DSC00924.JPG"  
   UserForm1.Picture = LoadPicture(ПутьКФайлу)  
   UserForm1.PictureSizeMode = fmPictureSizeModeStretch  
   UserForm1.PrintForm  
End Sub{/post}{/quote}  
 
EducatedFool!    
Спасибо вам ограмное!
Страницы: 1
Наверх