User-defined data types in Visual Basic 6 allow combining multiple related data items into a single variable. A Type statement defines the data type, specifying the individual data elements. Variables can then be declared as this user-defined type. Properties of these variables, such as the product name, can then be accessed. The With statement simplifies code by allowing setting multiple properties and calling multiple methods on the same object without restating the object name.