A word of warning with things like this Steve, keep in mind that that UI may not be in the exact same condition for every record. For example, if the user already has two contacts in their list, trying to do "oMatrix.GetCellSpecific(0, 1)" will FAIL to allow you to add a new contact, because that will click on the first existing contact. So, as I said before, I hard coded many things in that code that I would never hard code in actual code. If you always want to do a "Define New" for a business partner, then once you get to the point where you can access the left matrix (Item # 112), you'll want to check the VALUE of each cell in the Contacts List matrix one by one until you locate the "Define New" cell. Then you can "click" on that cell.
Everything done with the UI API is precarious. That's why it's almost always better to work directly with the data by using the DI API whenever possible. There are substantially less chances for error due to conditions that you couldn't have foreseen with unexpected changes to the UI (such as pop-ups, etc.).