1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub testtextstyle()
Set doc = CreateObject("htmlfile")
Debug.Print text_stylé([B3], doc)
End Sub
Function text_stylé(cel, doc)
With CreateObject("WScript.Shell"): ppx = .RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI") / 72: End With
ExtraitXML = Replace(cel.Value(xlRangeValueXMLSpreadsheet), "ss:Data", "Data")
texte = Split(Split(Replace(ExtraitXML, "html:", ""), "<Data")(1), "</Data")(0)
texte = Replace(texte, Split(texte, ">")(0) & ">", "")
If IsDate(cel.Value) Then texte = cel.Text 'Format(cel.Text, "dd/mm/yyyy")
fcolor = Split(ExtraitXML, "ss:FontName="""): i = 1
If Not IsNull(cel.Font.Color) And cel.Font.Color <> 0 Then i = 2
fontcolor = Split(Split(fcolor(i), "ss:Color=""")(1), Chr(34))(0)
font_size = Split(Split(fcolor(UBound(fcolor)), "ss:Size=""")(1), Chr(34))(0)
font_name = Split(fcolor(UBound(fcolor)), Chr(34))(0)
Set fonte = doc.createelement("FONT")
With fonte: .Style.Color = fontcolor: .Style.FontSize = font_size * ppx: .face = font_name: .innerhtml = texte
Set Fonts = .getelementsbytagname("FONT")
For i = 0 To Fonts.Length - 1
If Fonts(i).Size <> "" Then Fonts(i).Style.FontSize = Fonts(i).Size * ppx: Fonts(i).Size = ""
Next
End With
text_stylé = fonte.outerhtml
End Function |
Partager