Sub ExportAsHtmlFile()
Dim strStyle As String ' Параметры стиля отображения
ячейки
Dim strAlign As String ' Параметры выравнивания ячейки
Dim strOut As String ' Выходная строка с HTML-кодом
Dim cell As Object ' Обрабатываемая ячейка
Dim strCellText As String ' Текст обрабатываемой ячейки
Dim lngRow As Long ' Номер строки обрабатываемой
ячейки
Dim lngLastRow As Long ' Номер строки предыдущей ячейки
Dim strTemp As String
Dim strFileName As String ' Имя файла для сохранения HTML-
кода
Dim i As Long
' Запрос у пользователя имени файла для сохранения
strFileName = Application.GetSaveAsFilename( _
InitialFileName:="Primer.htm", _
fileFilter:="HTML Files(*.htm), *.htm")
' Проверка, задал ли пользователь имя файла (если нет, _
то можно выходить)
If strFileName = "" Then Exit Sub
lngLastRow = Selection.Row
' Просмотр всех выделенных ячеек
For Each cell In Selection
' Значение строки для рассматриваемое ячейки
lngRow = cell.Row
' Если перешли на другую строку, то вставляем
If lngRow <> lngLastRow Then
strOut = strOut & vbTab & «» & vbCrLf & vbTab & _
«
' Переход на следующую сроку
lngLastRow = lngRow
End If
' Задание шрифта ячейки
If Not IsNull(cell.Font.Size) Then
strStyle = « style=» & "font-size: " & Int(100 * _
cell.Font.Size / 19) & «%;»
End If
' Для полужирного шрифта вставляем
If cell.Font.Bold Then
strCellText = «» & strCellText & «»
End If
' Задание выравнивания
If cell.HorizontalAlignment = xlRight Then
' По правому краю
strAlign = « align=» & «right»
ElseIf cell.HorizontalAlignment = xlCenter Then
' По центру
strAlign = « align=» & «center»
Else
' По левому краю (по умолчанию)
strAlign = ""
End If
' Чтение текста в ячейке
strCellText = cell.Text
' Если нужно, то вертикальный вывод текста (в строку strTemp _
с последующим перенесением обратно в strCellText)
If cell.Orientation <> xlHorizontal Then
strTemp = ""
' Печать после каждого символа специального _
разделителя –
For i = 1 To Len(strCellText)
strTemp = strTemp & Mid$(strCellText, i, 1) & «
»
Next i
strCellText = strTemp
strStyle = ""
End If
strOut = strOut & vbTab & vbTab & «
strAlign & «>» & strCellText & «» & vbCrLf
Next
' Вставка
strOut = vbTab & «
& vbCrLf
' Вставка дескриптора
strOut = «
& vbCrLf & strOut & vbCrLf & «»–
' Сохранение HTML-кода в файл
Open strFileName For Output As 1
Print #1, strOut
Close 1
' Вывод окна с информационным сообщением о результатах работы
MsgBox Selection.Count & " ячеек экспортировано в файл " & _
strFileName
End Sub