OOXML Hacking: Buy the Book

After years of original research, you can finally buy the book! Filled with unique information not found anywhere else, online or in print, this manual shows you how to build SuperThemes 3 different ways, how to create custom Effects Themes, how to edit the Ribbon in macOS, and much more!

OOXML Hacking: buy the book

The book expands on many of the brief articles on this site, putting them in logical order and expanding the number of examples. Author John Korchok explains how Office Open XML files work, shows you where to find each XML part and how each part can be modified. With these tools, you can provide unique services to your clients or users that you can't find at the average Office template service bureau. To give you a better idea of what it covers, here is the Table of Contents:

Table of Contents 1
Table of Contents 2
Table of Contents 3

All techniques are covered in both Windows and macOS. The book includes a link to a downloadable text file with all the hyperlinks, XML and VBA listings, so you don't have to retype anything from the printed page. At this time, only print copies are available, ebook versions will be here in several months. To buy the book, click here.

Uniform Rounded Corners - Cool Code

A client sent a design for a Word template that had lots of boxes and photos with uniform rounded corners. Not an unreasonable request, but Office doesn't do that well. In PowerPoint, Word and Excel, rounded corners are proportional to the size of the shape. Making them uniform manually is picky and time-consuming. But with a dash of VBA, we can make the job easy.


The Math

As a round-cornered shape gets larger, the corner radius increases as well, in proportion to the shape size. Since we want to keep the radius the same size, we need to create a formula that makes a smaller number as the height and width increase. We need an inverse number! The simplest way to create an inverse is to divide 1 by the measurements. Then, we need a number to set the radius size: a constant. The formula looks like this: (1 / (Shape.Height + Shape.Width)) * RadiusFactor. And you thought you'd never need that high school math!

Here's VBA code that will work in Excel, Word and PowerPoint on a selection of round-cornered boxes:

Sub RoundedCorners()
  Dim oShape As Shape, RadiusFactor!
  RadiusFactor! = 50
  For Each oShape In ActiveWindow.Selection.ShapeRange
    With oShape
      If .AutoShapeType = msoShapeRoundedRectangle Then
        .Adjustments(1) = (1 / (oShape.Height + oShape.Width)) * RadiusFactor!
      End If
    End With
  Next oShape
End Sub

Uniform Rounded Corners for the Whole Document

To run this on a whole presentation, document or workbook, we need to customize the routine for each Office program. Here's the Excel version:

Sub RoundAllXLCorners()
  Dim oWorksheet As Worksheet, oShape As Shape, RadiusFactor!
  RadiusFactor! = 50
  For Each oWorksheet In ActiveWorkbook.Worksheets
    For Each oShape In oWorksheet.Shapes
      With oShape
        If .AutoShapeType = msoShapeRoundedRectangle Then
          .Adjustments(1) = (1 / (oShape.Height + oShape.Width)) * RadiusFactor!
        End If
      End With
    Next oShape
  Next oWorksheet
End Sub

To do the same in PowerPoint

Sub RoundAllPPCorners()
  Dim oSlide As Slide, oShape As Shape, RadiusFactor!
  RadiusFactor! = 50
  For Each oSlide In ActivePresentation.Slides
    For Each oShape In oSlide.Shapes
      With oShape
        If .AutoShapeType = msoShapeRoundedRectangle Then
          .Adjustments(1) = (1 / (oShape.Height + oShape.Width)) * RadiusFactor!
        End If
      End With
    Next oShape
  Next oSlide
End Sub

And finally, for Word

Sub RoundAllWDCorners()
  Dim oShape As Shape, RadiusFactor!
  RadiusFactor! = 50
  For Each oShape In ActiveDocument.Shapes
    With oShape
      If .AutoShapeType = msoShapeRoundedRectangle Then
        .Adjustments(1) = (1 / (oShape.Height + oShape.Width)) * RadiusFactor!
      End If
    End With
  Next oShape
End Sub
Before: Rounded Corners, but not Uniform
Rounded Corners, but not Uniform

The Word version is a little simpler because a Word document is one big object, while Excel and PowerPoint both have multiple objects for each worksheet and slide, respectively. But the similarites point out that when you're searching online for VBA code, finding something for a different program and modifying it can be a huge time-saver. By far, Excel has way more code written for it, so Excel VBA sites can be a fruitful source for Word and PowerPoint code ideas.

After: Uniform Rounded Corners
Uniform Rounded Corners

These macros have been tested under both Windows and macOS and work well under both.

Content Controls for macOS - Cool Code

Content Controls are an improved form of fillable form field, but the Word for Mac user interface doesn't include Content Controls for macOS. I show you how to sidestep this limitation to be able to create superior fillable forms.

Microsoft Word for Windows has three different types of fields to use for fillable forms. The oldest of these are Legacy Form Fields, which exist in every version of Word, Windows and Mac, but not DOS, back to the dawn of time. Legacy form fields require the document to be protected for forms, which closes down many formatting options even on unprotected sections. These are the only form fields available in the Mac program interface. Windows version also have ActiveX controls. These generally have a crude appearance. They don't work at all on Mac versions of Word.

Finally, we have the newest type of form fields, Content Controls. These were introduced on Windows in Word 2007. The collection of controls was expanded a little in 2010 and a little more in 2013. Word 2008 and 2011 can't use or create them, but in Word 2016 for Mac, the program started honoring Content Controls created in Windows, so they work as expected on both platforms. Unfortunately, the tools to add and modify them are still not in the program.


Content Controls for macOS: What Are They?

While Legacy Form Fields have only 3 types (Text field, Checkbox and Dropdown), there are 9 (or 10, depending on how you count) types of Content Controls. Here's a look at each type:

Plain Text and Rich Text
Plain Text and Rich Text Content Controls for macOS

These look identical on the screen. The screen shot shows what they look like unselected (top) and selected (bottom). The Plain Text control is most similar to the Legacy Text form field. All the text has the same formatting and you can't include other types of content other than text. By comparision, the Rich Text control allows selected text to be bold or italic or a different font. You can insert tables and pictures and even other Content Controls into Rich Text controls.

Picture
Picture Control Appearance

Finally! A true picture placeholder for Word! The picture can be set when the control is created. There are options to allow the user to replace it or not. Or it can be left blank (as shown) for the user to add a picture later. You can change the shape from a square using Picture Format>Picture Styles. This choice can also add a soft edge or other visual effects to a photo that the user inserts later.

It's worth noting that Picture Content Controls only work as inline pictures. To float them and wrap text around them, you need to place the CC in a table cell or frame or some other object that allows text wrapping. These controls come in at 2" square, but you can set numeric dimensions on the Picture Format tab. (Thanks to Timothy Rylatt for the tips!)

Building Block
Building Block Control Appearance

This is the only Content Control that doesn't work yet on a Mac. While Building Blocks in the Windows version of Word is the same technology as AutoText on the Mac, Microsoft hasn't gone the extra mile to tweak it for AutoText. But if your client needs it in their template, at least you can create it on a Mac.

Check Box
Checkbox Content Controls for macOS

Similar to the Legacy Check Box form field, but with the added advantage that the filled symbol can be set to other symbols than an X. This control was added in Word 2010, so don't include one for a client using 2007.

But still no radio buttons? Give me a break, Microsoft! Using elaborate VBA kludges, it's possible to make a set of checkboxes operate like radio buttons with both Legacy and Content Control versions. But it shouldn't be so hard!

Combo Box and Drop-Down
Combo Box and Drop-Down Content Controls for macOS

Another similar pair of controls. The Drop-Down is most similar to the Legacy Drop-Down (which MS often refers to as a Combo Box, just to confuse everyone). The Drop-Down restricts users to choosing an item on the list, while a Combo Box allows a user to enter a value that is not on the list.

Date Picker
Date Picker Content Controls for macOS

While Legacy Text fields have a date option, it's only to enforce date formatting after a user tries to enter a date. The Date Picker Content Control is way cooler, it's pops a little calendar for the user to choose a date visually. Handy!

Repeating Section
Repeating Section Content Controls for macOS

...And the prize for longest prompt text goes to this control. Added to Word 2013, so it won't work for 2007 and 2010 clients. Clicking on the plus sign in the bottom right corner duplicates the content. There are already a couple of ways to do this, so I think this is strictly for user convenience. Unlike the others, this control spans the page by default, probably because of the long prompt.

Group

No screen capture for this one, because it's more of an operation than a control. Applying this to a selected set of Content Controls will group them together, so they can be copied as a unit. You can't include a Rich Text control, which can also be used as a group. If you select controls, then get an error when grouping that a control is "partially covered", it will usually be about the topmost control. Add a carriage return before, include it when you select, then run the Group macro.


Simple Controls from Keyboard shortcuts

Fortunately, the VBA object model for Word 2016 and 2019 for Mac includes Content Controls. If you're creating forms for your own use, there is a simple way to create basic Content Controls on your Mac:

  1. In Word, choose Tools>Customize Keyboard
  2. Scroll Categories and pick All Commands
  3. Scroll Commands and pick ContentControlCheckBox
  4. Click inside the Press new keyboard shortcut field and type a key combination. Word will inform you if that combination is already in use. If there is no conflict, or an insignificant conflict, click on the Assign button. Finally, click on OK. The Control key is a good modifier, because all existing keyboard shortcuts with Control are duplicates of ones that also use the Command key.
  5. Click on your document where you would like to see a checkbox, then use the keyboard shortcut. Viola! Instant checkbox!

Repeat the steps for the other Content Control commands. It's not a bad idea to make a sample document with Content Controls and their shortcuts, for later reference. BTW, keyboard shortcuts are the only customization that can access Content Controls. Equivalent commands for the QAT and Ribbon haven't been added as of this writing.


Content Controls for macOS: Complex Controls for Clients

The keyboard shortcuts are fine for plain vanilla controls. But they're so basic, some are useless. Sure you can insert a Drop-Down or Combo Box, but they don't have any items in the list and there's no easy way to add them. What we need is more fine-grained control so we can set all the same options that a Windows user can. This is possible by inserting them using VBA.

If you never used macros in Word, start by making the Developer tab visible on the Ribbon. Choose Word>Preferences>View and check Show developer tab. The tab becomes visible when you close the Prefs panel.

On the Developer tab, click on the Visual Basic button (Word doesn't run Visual Basic, but a very similar language called Visual Basic for Applications. This is VBA, not VB, but why would MS care about an accurate button title?). The VBA Editor opens. In the top left corner is a windows called Projects. If you have a fresh installation, you'll only see Normal here. If you have Add-ins installed, there will be other project names. Select Normal.

From the macOS menu, choose Insert>Module. Call it ContentControls. A new module page is opened where you can insert macro code. Copy and paste the following code onto that page:

Sub AddRichTextCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlRichText, Selection.Range)
  Set oCC = Nothing
End Sub

Sub AddPlainTextCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlText, Selection.Range)
  With oCC
    .MultiLine = True
  End With
  Set oCC = Nothing
End Sub

Sub AddPictureCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlPicture, Selection.Range)
  Set oCC = Nothing
End Sub

Sub AddBuildingBlockCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlBuildingBlockGallery, Selection.Range)
  With oCC
    .BuildingBlockType = wdTypeAutoText
    .BuildingBlockCategory = "General"
  End With
  Set oCC = Nothing
End Sub
Sub AddCheckBoxCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlCheckBox, Selection.Range)
  With oCC
    .Checked = False
    .SetCheckedSymbol CharacterNumber:=&HFE, Font:="Wingdings"
    .SetUncheckedSymbol CharacterNumber:=&HA8, Font:="Wingdings"
  End With
  Set oCC = Nothing
End Sub

Sub AddComboBoxCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlComboBox, Selection.Range)
  With oCC
    .DropdownListEntries.Add "Choose an item.", value:=""
    .DropdownListEntries.Add "Item 1"
    .DropdownListEntries.Add "Item 2"
  End With
  Set oCC = Nothing
End Sub

Sub AddDropDownCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlDropdownList, Selection.Range)
  With oCC
    .DropdownListEntries.Add "Choose an item.", value:=""
    .DropdownListEntries.Add "Item 1"
    .DropdownListEntries.Add "Item 2"
  End With
  Set oCC = Nothing
End Sub
Sub AddDatePickerCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlDate, Selection.Range)
  With oCC
    .DateCalendarType = wdCalendarWestern
    .DateDisplayFormat = "MMMM d, yyyy"
    .DateDisplayLocale = wdEnglishUS
  End With
  Set oCC = Nothing
End Sub

Sub AddRepeatingSectionCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlRepeatingSection, Selection.Range)
  With oCC
    .AllowInsertDeleteSection = True
    .RepeatingSectionItemTitle = "Repeating Section Item"
  End With
  Set oCC = Nothing
End Sub

Sub AddGroupCC()
  Dim oCC As ContentControl
  Set oCC = ActiveDocument.ContentControls.Add(wdContentControlGroup, Selection.Range)
  Set oCC = Nothing
End Sub

Use the Tools>Customize Keyboard command to assign these macros keyboard shortcuts. You can also add them to the Quick Access Toolbar. If you subscribe to Office 365 or have Office 2019, you can also add them to the Ribbon.

If you take a close look at the code, you'll see there are additional lines on some that allow you to set options for that type of control. As one example, the Date Picker includes options for the calendar type, date format and date language. In use, you would alter these options to suit the client, then run the macro to add a control with those options set.


Content Controls for macOS: Setting the Options

Here's where you can really customize the Content Controls. These are generic options that can be set for all Content Controls. Rather than bulk up each individual macro, here's one macro to set the extra options. Set the options in code, select a Content Control that you've already inserted, then run the macro. If you're inserting many controls that have a common setting, like .LockControl = True, add that line to the code for inserting the control to avoid extra steps.

Sub SetOptions()
  If Selection.Information(wdInContentControl) Then
    With Selection.ParentContentControl
      'Sets the appearance to the original bounding box look. For the newer tags look, use wdContentControlTags
      'If you don't need to change a setting, comment it out before running the macro
      .Appearance = wdContentControlBoundingBox

      'Sets the color of the control to a preset color
      .Color = wdColorWhite

      'Sets the Word Character style to use for the text formatting. This will fail if you use a Paragraph style or forget to create the style before running this. This does _not_ change the placeholder text appearance, just the entered text that replaces it.
      .DefaultTextStyle = "Big"

      'Sets whether the Content Control can be deleted or not. If the control has had .Temporary = True applied, you must reverse that property to True before applying this.
      .LockContentControl = True

      'Sets whether the contents of the Content Control can be deleted or not.
      .LockContents = False

      'Sets the placeholder text or prompt for the control
      .SetPlaceholderText , , "Default Text"

      'Sets the Content Control tag property
      .Tag = "Tag"

      'If this is set to true, the Content Control will be removed when the contents are edited.
      .Temporary = False

      'Sets the title of the Content Control. This appears on a tab above the control when it is activated.
      .Title = "Title"
    End With
  Else
    MsgBox "Please select a Content Control to change its options."
  End If
End Sub

Utility Macros

The following macros perform essential functions that may only be occasionally required. First, a pair to toggle all Content Controls between the older Bounding Box appearance and the newer Tags look. The only control that currently displays as a tag in macOS is the Group Content Control. All others appear as plain text in a mysterious field. As a consequence, don't use this setting for forms to be used on a Mac. Save it for Windows clients:

Sub BoundingBoxAppearance() 'Sets all Content Controls in the document to a bounding box appearance
  Dim oCC As ContentControl
  For Each oCC In ActiveDocument.ContentControls
    oCC.Appearance = wdContentControlBoundingBox
  Next oCC
  Set oCC = Nothing
End Sub

Sub TagAppearance() 'Sets all Content Controls in the document to the tag appearance.
  Dim oCC As ContentControl
  For Each oCC In ActiveDocument.ContentControls
    oCC.Appearance = wdContentControlTags
  Next oCC
  Set oCC = Nothing
End Sub

This macro deletes the existing list of a Combo Box or Drop-Down and replaces it with a new list.

Sub ReviseComboBoxOrDropDownList()
  If Selection.Information(wdInContentControl) Then
    If Selection.ParentContentControl.Type = wdContentControlComboBox Or Selection.ParentContentControl.Type = wdContentControlDropdownList Then
      With Selection.ParentContentControl
        .DropdownListEntries.Clear
        .DropdownListEntries.Add "Choose an item.", value:=""
        .DropdownListEntries.Add Text:="List Item 1", value:="1"
        .DropdownListEntries.Add Text:="List Item 2", value:="2"
      End With
    End If
  Else
    MsgBox "Please select a Combo Box or Drop-Down Content Control to change its list."
  End If
End Sub

Finally, one to ungroup a Group Content Control. Switch to Tag view to see Groups, they're invisble in Bounding Box view. Don't try to select all group items before ungrouping, it will generate an error. Instead, single-click anywhere inside the group:

Sub UnGroupCC() 'Ungroups a group control
  If Selection.Information(wdInContentControl) Then
    Selection.ParentContentControl.Ungroup
  End If
End Sub

For more in-depth reference on these macros, please see Microsoft's documentation.

Now you're equipped to send your client top-quality fillable forms with the latest technology. So when your client asks if you can create Content Controls, instead of saying "Huh?", you can reply confidently "No problem!"

Shared Workgroup Templates - Best Practices

Groups of workers usually use the same templates. But it can be time-consuming to keep everyone updated when templates are installed separately on each desktop. Instead, you can implement shared workgroup templates with a feature already built into Office.


Shared Workgroup Templates - Multiple Uses

Every desktop version of Office, Mac and Windows, includes a Workgroup templates option that allows you to set a network share as a templates folder. Templates on this share are instantly available to all users, making updates and revisions a breeze. Automatically, everyone in the office is using the same version. As long as template names remain identical, then old Word documents automatically attach themselves to the new template.

The Workgroup templates network share can serve more that just templates. With some additional subfolders, it can be a source for Document Themes, including custom SuperThemes, it can hold collection of Font and Color themes. These additional files don't show in the File>New dialog. Theme files display under the Themes dropdown, theme colors under the Colors dropdown and theme fonts under the Fonts dropdown.


Shared Workgroup Templates - Setup

To set up shared workgroup templates, first create the network location and ensure it's accessible to all in the office without a signin. Each computer should connect to the share automatically on restart, so users don't have to remember to manually connect before creating a new document. Create subfolders with the following names for othe file types you want to support. Document Themes for themes, with subfolders for Theme Colors and Theme Fonts. All versions of Office expect exactly the same file structure.

If the office uses Group Policies to install and configure software, you can use that feature to add the Workgroup Template location to each user installation. If you're using "sneakernet" for configuration, here's how to do it manually. All Office suites use a setting in Word to set the location for all the other programs

Office 2010, 2013, 2016 and 2019 for Windows

  1. In Word, choose File>Options>Advanced.
  2. Scroll down to the General section of Advanced and click on the File Locations... button.
  3. Select the Workgroup templates line, then click on the Modify button.
  4. In the dialog that opens, enter the path to the network share in the Folder name field, or use the window controls to navigate to the folder. Select the folder and click on OK. OK all the way out and close Word

Office 2007 for Windows

  1. In Word, click on the Office button, then on Word Options, then on Advanced..
  2. Scroll down to the General section of Advanced and click on the File Locations... button.
  3. Select the Workgroup templates line, then click on the Modify button.
  4. In the dialog that opens, enter the path to the network share in the Folder name field, or use the window controls to navigate to the folder. Select the folder and click on OK. OK all the way out and close Word.

Office 2003 and earlier for Windows

  1. In Word, choose Tools>Options and click on the File Locations tab.
  2. Select the Workgroup templates line, then click on the Modify button.
  3. In the dialog that opens, enter the path to the network share in the Folder name field, or use the window controls to navigate to the folder. Select the folder and click on OK. OK all the way out and close Word.

Office 2016 and 2019 for Mac

  1. In Word, choose Word>Preferences>File Locations.
  2. Select the Workgroup templates line, then click on the Modify button.
  3. In the dialog that opens, use the window controls to navigate to the folder. Select the folder and click on Open. OK out and close Word

Office 2011 and earlier for Mac

  1. In Word, choose Word>Preferences>File Locations.
  2. Select the Workgroup templates line, then click on the Modify button.
  3. In the dialog that opens, use the window controls to navigate to the folder. Select the folder and click on Choose. OK out and close Word

Shared Workgroup Templates in Use

Here's how to access Workgroup templates in Office programs

Office 2016 and 2019 for Windows

  1. Choose File>New.
  2. Click on Custom.
  3. Click on Workgroup Templates, select a template, then click on Create.

Office 2013 for Windows

  1. Choose FILE>New.
  2. Click on SHARED.
  3. Click on a template.

Office 2010 for Windows

  1. Choose File>New>My Templates.
  2. On the Personal Templates tab, select a template, then click on OK. This tab also shows local templates on the user's computer.

Office 2007 for Windows

  1. Click on the Office button, then on New.
  2. Click on My templates...
  3. Select the My Templates tab. Workgroup templates are displayed along with local templates in the same pane.

Office 2003 and earlier for Windows

  1. Click on File>New. The New Document pane opens at the side of the window.
  2. On the New Document pane, click on On my computer...
  3. Select a template from the General pane and click on OK. This pane shows a mix of local and workgroup templates.

Office 2016 and 2019 for Mac

  1. Choose File>New from Template.... The Document Gallery opens
  2. In the upper left corner, click on the Work link. This link only appears when you have a Workgroup Templates location set in Preferences.
  3. Select a template, then click on Create.

Office 2011 for Mac

  1. Choose File>New from Template. The Document Gallery opens.
  2. Click on Workgroup Templates in the left-hand TEMPLATES list..
  3. Select a template and click on Choose.

Office 2008 for Mac

  1. Choose File>Project Gallery. The Project Gallery opens.
  2. Click on My Templates in the left-hand Category list..
  3. Select a template and click on Open. This window will show a mix of Workgroup and local templates.

Shared Workgroup Templates - Shortcomings

In addition to templates and themes, a local templates folder also serves custom Chart and SmartArt templates. Neither of these formats is supported by Workgroup Templates, so those templates must still be installed locally on each user's computer.

The Flat Theme - Best Practices

Flat Theme Shape Styles

I'm writing an article or two about Office Effects Themes and how you can modify them. As an example, I created the Brandwares Flat Theme, which will be of use to designers as is. This theme file gets rid of the bulgy 3-D shapes, glows and hokey shadows of the standard Microsoft themes and relies only on tints, shades and outline variations. You can use this example in 2 ways: as a theme file that you can modify and send as your own, and as an Effects Theme file that can be installed in Office for Windows to provide access to flat shapes in all other themes.

Here you can download the Flat Theme. It's also available on our Downloads page. After downloading, you can open it in PowerPoint, create new font and color themes, apply them, then resave as a new theme. The flat shapes will travel with the theme and be automatically applied to any deck that uses the theme. If you're an Office for Mac user, you'll have to create a font theme using this article: XML Hacking: Font Themes.


The Flat Theme - Specs

There are 7 variants in each row of the the Shape Styles dialog, each showing the dk1 color as a background plus the 6 Accent colors. The first 2 rows feature a 0.5pt outline on the shape in a darker variant of the accent color, with the first row showing a white shape background and the second row the relevant accent color.

The third row is the one I choose most of the time: a flat shape with no outline.

The fourth row has a 50% screened-back background color with black text.

The fills for the 5th and 6th rows are 2 progressively darker shades of the accent colors. The 5th row shows a 50% shade of the color, while the 6th is a two-layer multiplier fill with a 50% shade overlaying a 50% tint. I'll explain these more in the articles to come.

Users of Office 2016 for Windows and for Mac will see an additional group of Presets below the theme shape styles. Except for the stroke weight in row 2, these fills are generated automatically by the program and cannot be modified by XML.


The Flat Theme - Installing as Effects Theme

You can also use the Flat Theme as a new effects theme in Windows versions of Excel, PowerPoint or Word (Office for Mac will display effects themes embedded in a theme or template, but there is no support in the program interface for applying a different effects theme). Then it will appear in the Theme Effects dropdown of Office for Windows along with the standard Microsoft themes. Here are the steps to do that:

  1. Download the Flat Theme from the link above and unzip it.
  2. Change the file name from BrandwaresFlatShapes.thmx to Flat.eftx. The first part of the name can be something other than Flat, but the ending must be .eftx. No other change to the theme file is needed.
  3. Close PowerPoint.
  4. Copy the file to the same folder as the Microsoft Theme Effects files:

32-bit PowerPoint 2007: C:\Program Files (x86)\Microsoft Office\Document Themes 12\Theme Effects

64-bit PowerPoint 2007: C:\Program Files\Microsoft Office\Document Themes 12\Theme Effects

32-bit PowerPoint 2010: C:\Program Files (x86)\Microsoft Office\Document Themes 14\Theme Effects

64-bit PowerPoint 2010: C:\Program Files\Microsoft Office\Document Themes 14\Theme Effects

32-bit PowerPoint 2013: C:\Program Files (x86)\Microsoft Office\root\Document Themes 15\Theme Effects

64-bit PowerPoint 2013: C:\Program Files\Microsoft Office\root\Document Themes 15\Theme Effects

32-bit PowerPoint 2016 and 2019: C:\Program Files (x86)\Microsoft Office\root\Document Themes 16\Theme Effects

64-bit PowerPoint 2016 and 2019: C:\Program Files\Microsoft Office\root\Document Themes 16\Theme Effects

With Office 2013 and 2016, there may not be a root folder, but then the Document Themes folder will be inside Microsoft Office, eliminating one level.

Restart PowerPoint and you'll see a new addition to the Effects dropdown:

Using the Brandwares Flat Shapes theme as an Effects Theme
Flat Theme Chosen

Great Color Themes - Best Practices

Great color themes in Office are not a random collection of swatches. Each spot in a color theme has a job. Once you learn those functions, great color themes will roll out from your office.

I'm always astounded to hear a Office "professional" who says "I don't use themes." I'm amazed because in modern versions of Office it's impossible to not to use themes. If you haven't set a theme for your template, then you're using the default Office theme. Whether you like it or not! Themes are an integral part of Office, so you'd better learn how they work.

I've previously covered Font Themes and how to hack them, a necessary skill for macOS creators. Check out XML Hacking: Font Themes and XML Hacking: Font Themes Complete. In this post, I'm covering the inner workings of theming to show you how to create great color themes. I've touched on this subject previously in Office Charts: 6 Colors Maximum! For ideas on how to include more than one color theme in a template or presentation, please see XML Hacking: Color Themes


Great Color Themes: The Basics

When you create a color theme in PowerPoint, the color set is added to the theme1.xml file in your presentation and it's saved on your computer. If you create a second color theme, that theme is also saved to your computer, but it replaces the first one in your deck. When you're using the user interface, each Slide Master has only 1 theme at a time. So for more color themes, create more slide masters. If the color theme is for a special purpose, like differently-colored charts, the extra slide master might have only 1 slide layout. That's less confusing for users.


Great Color Themes: Color Slot Functions

Almost every slot in a color theme has a PowerPoint function, a job that it fulfills for the program. If you don't know what these are, you'll place the wrong color in the slot and get a result that looks weird in the program interface. Needless to say, this doesn't help your professional cred with your client.

Here's the Color Theme editing dialog as seen in PowerPoint 2016 for Mac. In Office for Mac, you can only create color themes in PowerPoint. In Windows versions, you can create them in any Office program, though there is a good reason why you should still use PowerPoint.

Color Theme Editor

The following advice covers standard presentations that have a light background and dark text. If you're going for the mysterious Mafioso look with a dark background, then reverse the following instructions putting text colors into the light slots and backgrounds into the dark ones. Oddly enough, when PowerPoint imports a theme exported from Word for Excel, it will default to the Mafioso look. This is the good reason why you should always export theme files from PowerPoint, where your choices for background and text are explicit and that information is preserved in the theme.

The first 4 colors are for text and backgrounds. Although all 4 are called Text/Background, that just to accommodate the occasionally light text on a dark ground, as mentioned in the previous paragraph. In reality, Dark 1 is the main text color. If you have black text in the deck, leave this set at black. You should only change this if you have no black text (Please dont't tell me you're doing that trendy look of black text that's dark grey and makes it look like your printer ran out of toner. Eww.)

You may have a secondary text color for headings. That must go in the Dark 2 slot. Not in Light 1! Not in Light 2! All text colors go in the dark slots!

Light 1 is for background colors. Most of the time, this is white, so leave Light 1 set at white. If the design calls for a different background color than white, set it here.

Light 2 is the only slot in the theme that doesn't have a secondary job. You can make this slot any color! It doesn't matter! Woo-hoo! Let's hold off, this is a good spot for an extra color that doesn't fit elsewhere.

Accent 1 is the default color for inserted SmartArt, Text Boxes and Shapes. Almost all the time, you will make Accent 1 the primary corporate color. For our company, PMS 481C is the code color, so Accent 1 is the RGB equivalent in all our company themes.

If the company has a secondary brand color, Accent 2 is the logical position for it. So what about Accents 3 to 6? You're thinking "Hey! 4 empty slots! Throw some colors in, we're done!" Not so fast, junior.


Great Color Themes: Chart Fills

The set of Accent colors have a huge responsibility of their own: chart fills! I've created a color sequence to show how these are applied by PowerPoint.

Office programs fill charts using these 6 six colors in sequence. So when you're designing, it's best to know what that sequence is. The colors will be used in the same order:

Left to Right for Column Charts
Great Color Themes - Column Chart
Bottom to Top for Bar Charts
Great Color Themes - Bar Chart
First to Last for Line Charts
Great Color Themes - Line Chart
From 0 degrees (top dead center) clockwise for Pie Charts
Great Color Themes - Pie Chart

If there are no additional colors in the design standards, we create a pair of lighter and darker variations of the brand colors for Accents 3 to 6. But don't just create a pretty series of swatches! Is the chart readable when printed on a black and white laser? Can color-blind people read it? You're a Designer! You're supposed to be thinking of these things! The rule of thumb is to alternate darker and lighter colors in a sequence so they can be distinguished from one another even in monochrome. Not sure? Test it!

Of the 12 colors in the theme, only the first 10 are accessible to the user in color picker dialogs. The last 2, Hyperlink and Visited Hyperlink, are applied automatically when the user inserts a hyperlink in the document. I usually use 2 of the theme colors for these, rather than Microsoft's standard colors. If there's a blue, that's a good choice for the hyperlink, it's a visual cue. The followed hyperlink can be a lighter grey or other tint, if there is one in the palette.


Great Color Themes: Recognizing Trouble

Before shipping the deck, here are a few quick tests you should be performing to show any color theme problems:

Insert SmartArt: Is the text readable?
Smart Art Problem
Insert a chart: Does the preview look right?
Chart Preview Problem

If either of these look odd, you probably have a color theme problem. If the text or background of either the chart preview or SmartArt don't match the background of the deck, you've probably inserted a dark color into the Light1 slot

Insert a table: Do the auto-generated variations contain many useless combinations?
Table Colors Problem

Most of the autogenerated table combinations in this example are hideous and unworkable, sure sign of a bad color theme. You may also see a table style preview that looks different from the actual table. If the table preview shows a different color for table text (it will just show colored lines, not actual text), then the colors in Light2 and Dark2 have to be switched. Another problem indicator is if it appears you are selecting one color in the picker, but the actual color applied is different.

Insert a chart in Excel: Does the chart background match the worksheet background?
Excel Insert Chart Problem

If you see any of the above symptoms, take the time to fix them and do it right. Your client will notice these glitches and you won't be able to 'splain them away.

The general method to fix these issues is to put the theme in correct order, then go through the entire deck starting with the Slide Masters, correcting the colors back to the designed appearance. This effort isn't too bad if it's a single template or theme you're correcting. Groups of finished presentations are a different matter that need a more automated approach. Next time, I'll be writing about how to repair presentations with a bad color theme, using XML Hacking.

OOXML Hacking: Recent Colors

Recent colors are handled inconsistently by Microsoft Office programs. Word and Outlook only retain recently used colors only as long as the program is running, and those colors are visible in every document that's open. By contrast, PowerPoint and Excel both include them in the document. As soon as you open a different file, the previous colors disappear from the color picker. Return to the first document and there they are again.

If you're creating files for clients, you may generate quite a few colors in the design process. Your work will look a little more professional if you purge the Recent Colors from the PowerPoint or Excel file before sending it on.

If you're new to XML hacking, please read my intro: XML Hacking: An Introduction. If you're working on a Mac, you should also read XML Hacking - Editing in macOS.

Recent Colors in the Windows Color Picker

The row of Recent Colors that PowerPoint and Excel include in the file is a distraction for your client.


Recent Colors Removal Steps

Under Windows, begin by unzipping the file. On a Mac, open it in BBEdit or other advanced text editor.

If this is a PowerPoint deck, look in the ppt folder for the presProps.xml file. The recent colors begin on the third line of a prettified (human-readable) file. Simply delete the entire clrMru section:

<p:clrMru>
  <a:srgbClr val="A54DA5"/>
  <a:srgbClr val="C8006E"/>
  <a:srgbClr val="64006E"/>
</p:clrMru>

To remove the Recent Colors from an Excel workbook, open the xl folder, then edit styles.xml. Look for the colors section, then delete the entire mruColors part:

<colors>
  <mruColors>
    <color rgb="FF640064"/>
    <color rgb="FF393939"/>
  </mruColors>
</colors>

After editing, rezip the files if you're using Windows or save and close in your macOS text editor. Test that the file opens as expected and no longer has Recent Colors in the color picker, that send it off to the client.

Recent Colors Removed

A more presentable dialog for your client.


Don't Reuse Recent Colors

Occasionally an artist will try to include special colors in the Recent Colors section, to give the client some additional color choices. This is a bad idea because the Recent Color section is dynamic. When any new color is created, it's added to the left end of Recent Colors. If the row is full, the oldest color gets pushed off the right end. A better solution is to create Custom Colors. Here's my how-to on the subject. Custom Colors don't move or change and can be named, which is a little extra help for your client.

Choosing Fonts for Office - Best Practices

When you choose fonts for Office, it takes a different approach than selecting typefaces for an InDesign document. One obvious difference is that you only need to install the font for a design document on the computer where it's being created. Using the same font in an Office program will require the font to be installed on every computer using the document. Clearly, this is a much more costly solution. Aside from that, let's look at the pitfalls of choosing fonts for Office templates.


Choosing Fonts for Office - Fake News

Most of what you see on the internet comparing font formats is wrong. Almost all modern professional fonts are OpenType format. There is PostScript-flavor OpenType, favored by Adobe and ending with .OTF And there is TrueType-flavor OpenType, Microsoft's choice, ending with .TTF. It's the continued use of the .TTF file ending that has misled many into thinking that they're old-fashioned TrueType fonts. They're not.

To verify this in macOS, open FontBook and examine a font with a .TTF ending. Make sure choose View>Show Font Info. Now look at the Kind parameter. Old-fashioned TrueType fonts would say TrueType here, but more likely you're seeing OpenType TrueType.

In Windows, if you right-click on any file ending in .TTF and choose Properties, Type of file is reported as TrueType font file (.TTF). But this is illustrative of Windows' relatively brain-dead design rather than any real information about the font.

Confirming this in Windows requires a few more steps. Start by opening the C:\Windows\Fonts folder. Set the View menu to Details. Now right-click in the row that displays the categories like Name, Font Style, etc. A list of avilable categories display. Choose Font Type. Now you can see that almost all the fonts are OpenType. You'll only see TrueType if you've installed some old fonts from the 90s.


Choosing Fonts for Office - Designer Vanity

Designers from different geographic areas spec fonts differently. As one example, Toronto designers tend to focus on the practicalities of electronic document distribution. As a result, they will often choose Arial or Times New Roman for the user-filled portion of a template. By contrast, designers from New York focus on creating a distinct visual appearance. They choose unusual designer fonts. This creates logistical problems for their clients. They must spend money licensing for all workstations and then take time to install the fonts for each user.

Test fonts from small foundries to licensing a lot of copies. I've written about this issue before: Cross-platform Fonts from Small Foundries: Beware! In a mixed Windows/OS X environment, a poor quality font will not display correctly in documents that move between Mac and PC. One typical symptom is Italic text that displays as Roman or Bold when viewed on a different OS, or some similar weight/style mixup.


Choosing Fonts for Office - Collaboration

If the client uses Office documents for collaboration (Don't know? You should be asking these questions!), you should seriously reconsider a "designer-y" font choice. When the documents arrive at your client's client, that computer will not have the fonts and the document appearance will change drastically. Unlike web pages, Office documents do not have a font fallback setting. There is no practical way to preset which font will be substituted when the original is missing.

I know what you're going to say next: "What about if we embed the fonts?" Here are several reasons why that might not work.

  • Embedding does not work at all in Office 2011 or earlier for Mac. Users of these versions can neither embed fonts, nor can they view fonts that have been embedded in Windows.
  • Embedding doesn't work in Word or Excel for Mac, in both the 2016 and 2019 versions. PowerPoint 2016 for Mac users must have at least version 16.11 to view embedded fonts. The 2016 retail version (as opposed to the Office 365 subscriber version) cannot embed fonts in PowerPoint. Mac users must have at least Office 2019 retail or Office 365 version 16.17 to save embedded fonts in a PowerPoint file.
  • Many typefaces have restrictive embedding permissions. So even if you can embed the font and your client can see it, they will not be able to edit the document using the embedded font. You can get around this if you contact the foundry and request a version with Editable or Installable permissions. Expect to pay a surcharge for this. Some foundries charge a lot for this service, because they're concerned about losing sales to possible piracy.

Choosing Fonts for Office - Font Families

Designers are used to Single versions of fonts. The is where each font variant appears as a separate entry in the font list in Office. If you want to change to bold or italic, you select a different font from the list. Office doesn't usually work this way and Office users are not used to this method.

When all four faces in a font family are installed, using the bold and italic buttons has the intended effect of switching fonts.
Choosing Fonts for Office - Font Family Installed

Instead, Office users are familiar with Family fonts. This is where where a group of (usually 4) fonts is linked. To get bold or Italic variants, they click on the Bold or Italic buttons, leaving the font name the same. The foundry usually creates the font families, though there are some type utilities available that let you make a family out of single fonts. As I mentioned earlier, Microsoft hasn't figured out how to consistently display an .OTF font family correctly. Symptoms vary but are along the lines of you choose Bold and you get Bold Italic, or a similar variant. The wrong font is shown and printed. Typocially this will manifest when moving a Windows-created document to macOS or vice versa.

If the font is not set up as a family-style font, then using the bold and italic buttons fakes the look with stroking and/or slanting the roman. The result is a disastrous visual effect.
Choosing Fonts for Office - Base Font Installed

In macOS, it's not obvious when you are using single versus family fonts. MacOS creates family groupings on the fly. In Windows, it's easy: install the fonts, then look at the font menu in an Office program. A font family will only have one entry for the family, while singles will list every font variant. In this screen shot, the Arials are families. Arnhem and ATC Arquette are collections of single fonts:

The Arials are families, while Arnhem and ATC Arquette are singles.
Choosing Fonts for Office - Windows Font Menu

The logical conclusion to the font family approach is that your client should almost never be licensing just one or two typefaces. If four family members are not installed, Office will fake them by stroking the font for bold and slanting it for italic. As you might guess, this looks ghastly and completely off-brand.

The exceptions to this rule are:

  • If the document is a fillable form in Word or Excel. Those documents are typically locked so the user can't change the font or its attributes.
  • The the font is used only for Headings. These are usually bold and stay that way, so there is less chance of a user applying attributes.

In either of these 2 situations, you should be able to get away with licensing a single typeface instead of a complete family.

A font family with all 4 members installed. The bold and italic button work as expected.
Choosing Fonts for Office - A font family
Here is a family-style font with only the Roman installed. Using the bold or italic buttons gets you this dreadful look, plus an out-of-memory warning from Office.
Choosing Fonts for Office - Roman only installed

If your design calls for an unusual mix of weights, like Light and Demibold instead of Regular and Bold, contact the foundry to request a custom family. There is normally a small charge for this service. However, if the licensing deal is large enough, the foundry may waive this.


Choosing Fonts for Office - 2 Solutions

To sum up, for each different font used in your design, your client should be licensing a complete family of 4 typefaces in TrueType or Truetype-flavored OpenType.

Brandwares is a font reseller and we've been speccing type for Office for years. If you choose us to create your templates, we can also source your client fonts in the correct format and family. This service includes free tech support. We'll help your client with any installation or usage issues and communicate with the foundry, if necessary.

Working on your own? A simple way to eliminate all these issues is to design with the fonts that are already installed by Office. There are many faces more interesting than Arial and Times New Roman in this collection. The fonts that come with Office don't require any additional licensing fee. They are already installed and they have relaxed embedding permissions to make collaboration easy. They are all high-quality typefaces licensed from major foundries like Monotype. Here is a list of the families that are useful for business communications (we left out Comic Sans!). For maximum compatibility among all versions of Office, use a font that is checked in every column.

Click to view larger image
Useful Office Fonts

This list is available as a free PDF that shows character listings for every font by clicking on the font name. Email me to get a copy: production@brandwares.com

Best Quality Logos for Office - Best Practices

It's a challenge to create the absolute best quality logos for client files in Microsoft Office. Most artists choose bitmap formats for logos, usually JPEG format. Apparently this is some kind of received wisdom from artist to artist, because JPEG format is close to the worst possible format for logos. But I've already covered this subject in JPEG Logos? Fail! back in 2013.

Brandwares has used indexed-color PNG format for most line art (a term for non-photographic art that is mostly flat color areas). Most logos qualify as line art. But there are a couple of disadvantages to using any type of bitmap format for branding information.

With Office files, Microsoft is determined to foist image "compression" on us. I put compression in quotes because Microsoft's solution is really downsampling by another name. Whatever the name, the results are blurry and absolutely do not reinforce the brand. All bitmap files will be downsampled unless the user chooses only a single file. You can't protect the company logo, even with XML hacking. Let's face it, sooner or later, bitmap logos will look like mush.

The other persistent problem with bitmap formats is what happens when you create a PDF from a document. Acrobat's default settings assume you want to create a small file to post on a web page. This was a serious problem 20 years ago. So, once again, a software company's helpful authoritarianism leads to default settings that cream the logos in any Office file.


Vector Formats for Best Quality Logos

For many years, we at Brandwares were aware that a vector format was a potential way out of this. Vector formats are naturals for line art, because they easily handle geometric shapes with simple coloring. But there are relatively few vector formats from which to choose, and the available formats didn't seem up to the job.

One grandaddy of vector formats is the EPS file. Well-known to designers, the EPS doesn't get great support in Office programs. Printing them at high resolution requires PostScript support from the printer, which is dicey in most business offices. Office programs can't ungroup them, so adding theme color support in an Office file is out of the question.

CGM was an early contender, and is still used in technical applications. But it never got support in common file formats. SVG is making inroads on the web, but Office is only beginning to support the format.

Let's be honest, Microsoft offers the best support to the formats it invents. For vector graphics, that is WMF and EMF. WMF is a 16-bit format that was invented in the '90s. In practice, it's not too useful today. All too often, WMF files do not render the inside curve of shapes like O or D. In addition, Adobe Illustrator's WMF export is horrendous, turning every curve into a series of angled straight lines. Corel Draw does a better export, but the format is limited by its 16-bit capacity.

The format we're left with is EMF (Enhanced MetaFile). Brandwares has developed a method to create the highest quality EMF files possible. Whatever you do, do not use EMFs exported by Adobe Illustrator! Illustrator's curve accuracy goes down the toilet when it exports as EMF. Here's what you'll get, versus the type we produce:

EMF from Adobe Illustrator: wonky curves!
Adobe Illustrator EMF
EMF from Brandwares
Brandwares EMF

We create robust logos with a tiny file size and razor sharpness at any resolution and transparent backgrounds and they will never get downsampled by Office or Acrobat!


Best Quality Logos In Use

Once we've placed our EMF logos in your presentation, they can be ungrouped in Windows versions of PowerPoint, then you can key part or all of it to a theme color. If your presentation contains multiple color themes, changing theme colors will change the keyed logo element automatically. This can be a slick trick for presentations with different sections in different code colors. If you're working with a Mac, let us know and we can ungroup and key the logo parts for you.

Best quality logos in identical slide layouts keyed to different color themes

The layout for these slides is identical. Each uses a different color theme that varies one code color.

Transparency is not supported in most EMF exports, but by importing and ungrouping the logo, you can add transparency back in. In PowerPoint, choose Drawing Tools>Shape Fill>More Fill Colors..., then set the Transparency slider. This works the other way around from Illustrator, but the units are the same. If the Illustrator file used 40% Opacity, set 60% Transparency in PowerPoint.

Best quality logos benefit from EMF transparency

From L to R: each character has 10% more transparency. You can't get this by adding transparency in Illustrator, you must re-create it in Office.

EMF are not a great candidate for objects like disclaimers. Each letter includes one or 2 complex curves, so a paragraph of text will be much larger that the same disclaimer rendered as an indexed-color PNG or even a JPEG of the same text. But for logos, they're pretty great. You get the same small file size and pin-sharp appearance regardless of how much you enlarge it. Applying image compression or printing to a low-res PDF leaves EMF logos in pristine condition. It's by far easiest way to create the best quality logos for Microsoft Office.

OOXML Hacking: Font Themes Complete

I wrote about how to create a basic font theme in 2015: XML Hacking: Font Themes. Thanks to everyone for the comments and feedback that have allowed me to refine the article and make it more helpful.

That article covered a bare bones font theme for European languages (referred to as Latin fonts in Microsoft-speak). International and multilingual users require a theme that can work with a greater variety of languages and fonts, so in this article I'm going to cover how these work and how to create them.


A More Complete Simple Theme

There's more we can do with the very basic theme from the previous article. In the listing below, a font has been specced for only Latin fonts. Important Note: If you copy and paste these samples, you must change the non-breaking space characters to ordinary spaces. I need to use non-breaking spaces to format an HTML page, but Office will refuse to display your font theme if you don't search and replace them with regular spaces.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:fontScheme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Test">
  <a:majorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface=""/>
    <a:cs typeface=""/>
  </a:majorFont>
  <a:minorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface=""/>
    <a:cs typeface=""/>
  </a:minorFont>
</a:fontScheme>

In both the Major (Headings) and Minor (Body) categories, there are also ea (East Asian) and cs (Complex Scripts) entries. These theme entries are inactive until text is formatted as a relevant language. As long as your text is marked as US English (either by using the Review>Language>Set Proofing Language, or by setting the language in a Style), only the Latin theme fonts will be active. But if you mark text as Chinese, the Office program will check the theme and use the font in the ea tag instead. Likewise, Persian text will activate the cs theme font.

What will not work is to try to set an East Asian or Complex Scripts font in the Latin tag. Depending on the version and platform of Office, you'll only get European characters showing, or the program will completely ignore your theme. Here's a simple font theme that will work with Japanese, Arabic and European languages:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:fontScheme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Test">
  <a:majorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface="Meiryo"/>
    <a:cs typeface="Andalus"/>
  </a:majorFont>
  <a:minorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface="Meiryo"/>
    <a:cs typeface="Andalus"/>
  </a:minorFont>
</a:fontScheme>

Depending on which ea or cs font you choose, it may support one or several languages. As an example, CJK fonts will support Chinese, Japanese and Korean. Of course, in a collaboration scenario, the fonts chosen should be available on both Mac and Windows, or the display of one of the langauges may get mangled with a font substitution. The best idea is to stick with fonts distributed by Microsoft with Office.


Complex Font Themes

When you crack open the XML on a document or theme, the font theme information is contained in theme/theme1.xml. This illustrates a font theme that is ready to take on the world:

<a:fontScheme name="Office Theme">
  <a:majorFont>
    <a:latin typeface="Calibri Light" panose="020F0302020204030204"/>
    <a:ea typeface=""/>
    <a:cs typeface=""/>
    <a:font script="Jpan" typeface="MS Pゴシック"/>
    <a:font script="Hang" typeface="맑은 고딕"/>
    <a:font script="Hans" typeface="宋体"/>
    <a:font script="Hant" typeface="新細明體"/>
    <a:font script="Arab" typeface="Times New Roman"/>
    <a:font script="Hebr" typeface="Times New Roman"/>
    <a:font script="Thai" typeface="Angsana New"/>
    <a:font script="Ethi" typeface="Nyala"/>
    <a:font script="Beng" typeface="Vrinda"/>
    <a:font script="Gujr" typeface="Shruti"/>
    <a:font script="Khmr" typeface="MoolBoran"/>
    <a:font script="Knda" typeface="Tunga"/>
    <a:font script="Guru" typeface="Raavi"/>
    <a:font script="Cans" typeface="Euphemia"/>
    <a:font script="Cher" typeface="Plantagenet Cherokee"/>
    <a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
    <a:font script="Tibt" typeface="Microsoft Himalaya"/>
    <a:font script="Thaa" typeface="MV Boli"/>
    <a:font script="Deva" typeface="Mangal"/>
    <a:font script="Telu" typeface="Gautami"/>
    <a:font script="Taml" typeface="Latha"/>
    <a:font script="Syrc" typeface="Estrangelo Edessa"/>
    <a:font script="Orya" typeface="Kalinga"/>
    <a:font script="Mlym" typeface="Kartika"/>
    <a:font script="Laoo" typeface="DokChampa"/>
    <a:font script="Sinh" typeface="Iskoola Pota"/>
    <a:font script="Mong" typeface="Mongolian Baiti"/>
    <a:font script="Viet" typeface="Times New Roman"/>
    <a:font script="Uigh" typeface="Microsoft Uighur"/>
    <a:font script="Geor" typeface="Sylfaen"/>
  </a:majorFont>
</a:fontScheme>

For brevity, I've omitted the Minor font section. Instead of setting the ea and cs fonts, this font theme has entries for more tightly defined language groups and different fonts assigned to each one. This level is detail is necessary for a font theme that can be used around the world. Since I copied this listing from theme1.xml, it doesn't have the XML opening that a standalone font theme would have.

Setting up and testing a complex font theme like this is not a simple task. The font switching is automatic and is triggered by the language input setting on your computer, the language set in your template styles and the language set in the text being edited. Please post your comments, let me know of any hiccups or problems you notice and I'll try to answer your questions.

Brandwares creates font themes to help global corporations support every language. Send me a message for ensure your files have worldwide useability: production@brandwares.com