How to: Apply Styles to Ranges in Workbooks

Applies to

The information in this topic applies only to the specified Visual Studio Tools for Office projects and versions of Microsoft Office.

Project type

  • Document-level projects

  • Application-level projects

Microsoft Office version

  • Excel 2003

  • Excel 2007

For more information, see Features Available by Application and Project Type.

You can apply named styles to regions in workbooks. Excel supplies a number of predefined styles.

The Format Cells dialog box displays all the options you can use to format cells, and each of these options is available from your code. To display this dialog box in Excel, click Cells on the Format menu.

To apply a style to a named range in a document-level customization

  1. Create a new style and set its attributes.

    Dim style As Excel.Style = Globals.ThisWorkbook.Styles.Add("NewStyle")
    
    style.Font.Name = "Verdana"
    style.Font.Size = 12
    style.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
    style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Gray)
    style.Interior.Pattern = Excel.XlPattern.xlPatternSolid
    
    Excel.Style style = Globals.ThisWorkbook.Styles.Add("NewStyle", missing);
    
    style.Font.Name = "Verdana";
    style.Font.Size = 12;
    style.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
    style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Gray);
    style.Interior.Pattern = Excel.XlPattern.xlPatternSolid;
    
  2. Create a NamedRange control, assign text to it, and then apply the new style. This code must be placed in a sheet class, not in the ThisWorkbook class.

    Dim rangeStyles As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1"), "rangeStyles")
    
    rangeStyles.Value2 = "'Style Test"
    rangeStyles.Style = "NewStyle"
    rangeStyles.Columns.AutoFit()
    
    Microsoft.Office.Tools.Excel.NamedRange rangeStyles =
        this.Controls.AddNamedRange(this.Range["A1", missing], "rangeStyles");
    
    rangeStyles.Value2 = "'Style Test";
    rangeStyles.Style = "NewStyle";
    rangeStyles.Columns.AutoFit();
    

To apply a style to a named range in an application-level add-in

  1. Create a new style and set its attributes.

    Dim style As Excel.Style = Me.Application.ActiveWorkbook.Styles.Add("NewStyle")
    
    style.Font.Name = "Verdana"
    style.Font.Size = 12
    style.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
    style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Gray)
    style.Interior.Pattern = Excel.XlPattern.xlPatternSolid
    
    Excel.Style style = this.Application.ActiveWorkbook.Styles.Add("NewStyle", missing);
    
    style.Font.Name = "Verdana";
    style.Font.Size = 12;
    style.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
    style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Gray);
    style.Interior.Pattern = Excel.XlPattern.xlPatternSolid;
    
  2. Create a Range, assign text to it, and then apply the new style.

    Dim rangeStyles As Excel.Range = Me.Application.Range("A1")
    
    rangeStyles.Value2 = "'Style Test"
    rangeStyles.Style = "NewStyle"
    rangeStyles.Columns.AutoFit()
    
    Excel.Range rangeStyles = this.Application.get_Range("A1", missing);
    
    rangeStyles.Value2 = "'Style Test";
    rangeStyles.Style = "NewStyle";
    rangeStyles.Columns.AutoFit();
    

See Also

Tasks

How to: Clear Styles from Ranges in Workbooks

Concepts

Working with Ranges

NamedRange Control

Global Access to Objects in Visual Studio Tools for Office Projects

The Variable missing and Optional Parameters in Office Solutions

Change History

Date

History

Reason

July 2008

Added a code example that can be used in an application-level add-in.

Customer feedback.