Вчера один знакомый спросил меня, можно ли сделать в Excel такую кнопку, которая будет создавать HTML документ. Мол, может пригодится при публикации и распространении отчётов. И я не задумываясь ответил "Да, конечно можно", хотя сам с подобными методами раньше не соприкасался.
В приложенном файле Вы найдёте макрос, который по нажатию кнопки:
1). Предложит выбрать, с какой части документа сделать снимок. Выбираются ячейки, но при этом всё, чему они служат фоном - также попадёт на снимок. 2). Создаст JPG картинку в той же директории, что и сам файл. 3). Создаст там же HTML-документ (файл .htm) со ссылкой на картинку. Комментарий берётся из ячейки Excel. 4). Откроет созданный файл в браузере по умолчанию.
Сей незамысловатый трюк может прийтись по вкусу компаниям с общими сетевыми папками.
Лично меня порадовало, что HTML код можно прописывать в ячейках Excel - и из этих кусочков собирать результирующий документ.
[vba]
Код
Sub Public_JPG_to_WEB()
'Author: Roman Rioran Voronov 'Date: the 22-nd of August, 2014 'Feedback: voronov_rv@mail.ru
'Purpose: This subroutine allows user to convert selected cells to JPG ' and makes an HTML document with it.
Dim PathX As String 'Where our book is Dim NameX As String 'How to name new picture Dim rngX As Range 'What to shot as a picture
PathX = ThisWorkbook.Path & "\": NameX = "Temporary_Picture" Set rngX = Application.InputBox(prompt:="Select range for HTML page:", Title:="Time to choose", Type:=8)
'Saving a picture rngX.CopyPicture With ThisWorkbook.Worksheets(1).ChartObjects.Add(rngX.Left, rngX.Top, rngX.Width, rngX.Height) .Activate .Chart.Paste .Chart.Export PathX & NameX & ".jpg", "JPG" End With Worksheets(1).ChartObjects(Worksheets(1).ChartObjects.Count).Delete Set rngX = Nothing
'Creating a HTML file Open PathX & "Rio_WEB_File.htm" For Output As #1 Print #1, "<html><head><title>Rio-PAGE</title></head>" Print #1, "<body bgcolor: #f0f0f0; font-family: Arial, Helvetica; font-size: 11pt; margin-left: 10; margin-right: 10>" Print #1, "<h1>Rio - Magic</h1>Here you can see what do I want to share with you:<br><br>" Print #1, "<img src=" & PathX & NameX & ".jpg" & " alt=" & NameX & "><br><br>" & Cells(2, 1).Value & "<br><br>" Print #1, "<small>Supported by Roman Rioran Voronov, for any feedback mail to voronov_rv@mail.ru </small></body></html>" Close #1
'Time to open what we have ActiveWorkbook.FollowHyperlink Address:=PathX & "Rio_WEB_File.htm", NewWindow:=True
End Sub
[/vba]
Всем привет и хорошего настроения!
Вчера один знакомый спросил меня, можно ли сделать в Excel такую кнопку, которая будет создавать HTML документ. Мол, может пригодится при публикации и распространении отчётов. И я не задумываясь ответил "Да, конечно можно", хотя сам с подобными методами раньше не соприкасался.
В приложенном файле Вы найдёте макрос, который по нажатию кнопки:
1). Предложит выбрать, с какой части документа сделать снимок. Выбираются ячейки, но при этом всё, чему они служат фоном - также попадёт на снимок. 2). Создаст JPG картинку в той же директории, что и сам файл. 3). Создаст там же HTML-документ (файл .htm) со ссылкой на картинку. Комментарий берётся из ячейки Excel. 4). Откроет созданный файл в браузере по умолчанию.
Сей незамысловатый трюк может прийтись по вкусу компаниям с общими сетевыми папками.
Лично меня порадовало, что HTML код можно прописывать в ячейках Excel - и из этих кусочков собирать результирующий документ.
[vba]
Код
Sub Public_JPG_to_WEB()
'Author: Roman Rioran Voronov 'Date: the 22-nd of August, 2014 'Feedback: voronov_rv@mail.ru
'Purpose: This subroutine allows user to convert selected cells to JPG ' and makes an HTML document with it.
Dim PathX As String 'Where our book is Dim NameX As String 'How to name new picture Dim rngX As Range 'What to shot as a picture
PathX = ThisWorkbook.Path & "\": NameX = "Temporary_Picture" Set rngX = Application.InputBox(prompt:="Select range for HTML page:", Title:="Time to choose", Type:=8)
'Saving a picture rngX.CopyPicture With ThisWorkbook.Worksheets(1).ChartObjects.Add(rngX.Left, rngX.Top, rngX.Width, rngX.Height) .Activate .Chart.Paste .Chart.Export PathX & NameX & ".jpg", "JPG" End With Worksheets(1).ChartObjects(Worksheets(1).ChartObjects.Count).Delete Set rngX = Nothing
'Creating a HTML file Open PathX & "Rio_WEB_File.htm" For Output As #1 Print #1, "<html><head><title>Rio-PAGE</title></head>" Print #1, "<body bgcolor: #f0f0f0; font-family: Arial, Helvetica; font-size: 11pt; margin-left: 10; margin-right: 10>" Print #1, "<h1>Rio - Magic</h1>Here you can see what do I want to share with you:<br><br>" Print #1, "<img src=" & PathX & NameX & ".jpg" & " alt=" & NameX & "><br><br>" & Cells(2, 1).Value & "<br><br>" Print #1, "<small>Supported by Roman Rioran Voronov, for any feedback mail to voronov_rv@mail.ru </small></body></html>" Close #1
'Time to open what we have ActiveWorkbook.FollowHyperlink Address:=PathX & "Rio_WEB_File.htm", NewWindow:=True