Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our ExcelTips site focusing on the ribbon interface.
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
Please Note: This article is written for users of the following Microsoft Excel versions: 97, 2000, 2002, and 2003. If you are using a later version (Excel 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Excel, click here: Determining Font Formatting.
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:
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:
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 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Excel (Excel 2007 and later) here: Determining Font Formatting.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!