Excel.Tips.Net Welcome toExcel.Tips.Net

Helpful Links

Tips.Net Home
ExcelTips Home
Ask an Excel Question
Make a Comment

Tips.Net Store

ExcelTips FAQ
ExcelTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
ExcelTips Site

Newest Tips

Removing Borders

Converting to Octal

Filtering Columns for Unique Values

Printing Multiple Worksheets on a Single Page

Changing the Default Font

Creating a Drawing Object

Determining a Value of a Cell

 

Determining Font Formatting

Summary: If you need to determine the font applied to a particular cell, you'll need to use a macro. This tip presents several macro-based solutions that allow you to return both the font name and font size applied to a cell. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, Excel 2003, and Excel 2007.)

Oscar has a need to determine the font and font size applied to text in a cell. For instance, if the text in cell A1 is in 12-pt Arial, he would like a function that can be used to return "Arial" in cell B1 and 12 in cell C1.

There is nothing built-in to Excel that will allow this formatting information to be grabbed. You can, however, create a very simple macro that will do the trick. The following macro takes, as arguments, a cell reference and optionally an indicator of what data you want returned.

Function FontInfo1(Rn As Range, Optional iType As Integer)
    Application.Volatile
    If iType = 2 Then
        FontInfo1 = Rn.Font.Size
    Else
        FontInfo1 = Rn.Font.Name
    Endif
End Function

You use the function by using a formula such as this in a cell:

=FontInfo1(A1,1)

The second parameter (in this case 1) means that you want the font name. If you change the second parameter to 2 then the font size is returned. (Actually you could have the second parameter be anything other than 2—or leave it off entirely—and it returns the font name.)

If you want to return both values at once, you can apply a lesser-known way of returning arrays of information from a user-defined function. Try the following:

Function FontInfo2(c As Range) As Variant
    Application.Volatile
    FontInfo2 = Array(c.Font.Name, c.Font.Size)
End Function

Select two horizontally adjacent cells (such as C7:D7) and type the following formula:

=FontInfo2(A1)

Because the function returns an array, you need to terminate the formula entry by pressing Shift+Ctrl+Enter. The font name appears in the first cell (C7) and the font size appears in the second cell (D7).

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (7139) applies to Microsoft Excel versions: 97 | 2000 | 2002 | 2003 | 2007

Your Data, Your Way! Want the greatest control possible over how your data appears on the page? Excel's custom formats can provide that control, and ExcelTips: Custom Formats can unlock the secrets to creating your own custom formats.
 
Check out ExcelTips: Custom Formats today!