Ok, now I understand what you are after for your question #2. AFAIK, there isn't a built-in tool that will do this for you. However, the following little bit of code seems to work ok for me in testing:
<font face=Courier New><SPAN style="color:#00007F">Sub</SPAN> CopyLetterFormats()
<SPAN style="color:#007F00">' Copies character-level formatting from active cell</SPAN>
<SPAN style="color:#007F00">' to any other selected cells. So if selecting two</SPAN>
<SPAN style="color:#007F00">' non-contiguous cells/areas, select the targets first</SPAN>
<SPAN style="color:#007F00">' and the source last. Greg T., Jan 2005</SPAN>
<SPAN style="color:#00007F">If</SPAN> TypeName(Selection) <> "Range" <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> rngSelected <SPAN style="color:#00007F">As</SPAN> Range, rngBaseCell <SPAN style="color:#00007F">As</SPAN> Range, rngCell <SPAN style="color:#00007F">As</SPAN> Range
<SPAN style="color:#00007F">Dim</SPAN> intLtr <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> fontBase <SPAN style="color:#00007F">As</SPAN> Font
<SPAN style="color:#00007F">Set</SPAN> rngBaseCell = ActiveCell
<SPAN style="color:#00007F">Set</SPAN> rngSelected = Selection
<SPAN style="color:#00007F">If</SPAN> vbNo = MsgBox("Copy letter formats from " & _
rngBaseCell.Address(False, False) & _
" to the rest of the selected cells?", _
vbQuestion + vbYesNo, "Text Format Copy") <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> rngCell <SPAN style="color:#00007F">In</SPAN> rngSelected
<SPAN style="color:#00007F">If</SPAN> rngCell.Address = rngBaseCell.Address <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> EndOfLoop
<SPAN style="color:#00007F">For</SPAN> intLtr = 1 <SPAN style="color:#00007F">To</SPAN> WorksheetFunction.Min(Len(rngCell.Text), Len(rngBaseCell.Text))
<SPAN style="color:#00007F">Set</SPAN> fontBase = rngBaseCell.Characters(Start:=intLtr, Length:=1).Font
<SPAN style="color:#00007F">With</SPAN> rngCell.Characters(Start:=intLtr, Length:=1).Font
.Name = fontBase.Name
.FontStyle = fontBase.FontStyle
.Size = fontBase.Size
.Strikethrough = fontBase.Strikethrough
.Superscript = fontBase.Superscript
.Subscript = fontBase.<SPAN style="color:#00007F">Sub</SPAN>script
.OutlineFont = fontBase.OutlineFont
.Shadow = fontBase.Shadow
.Underline = fontBase.Underline
.ColorIndex = fontBase.ColorIndex
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">Next</SPAN> intLtr
EndOfLoop:
<SPAN style="color:#00007F">Next</SPAN> rngCell
rngBaseCell.Select
<SPAN style="color:#00007F">End</SPAN> Sub</FONT>
HTH