How to Display Excel VBA List Box Columns from Right to Left
Question details
The user needs to display the columns of a VBA list box from right to left, but adjusting standard text alignment properties does not change the physical column order.

- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Developing an Excel VBA UserForm where a multi-column list box is linked to a worksheet table and requires a right-to-left column presentation.
- Observed behavior
- Changing the list box TextAlign property only affects how text is aligned within the columns; it fails to reverse the overall left-to-right sequence of the columns themselves.
Determine whether your entire UserForm needs to follow a right-to-left layout or just the specific list box, as the primary solution will affect the entire form.
Enable the UserForm RightToLeft Property
This is the simplest and most robust method. By setting the parent UserForm to a right-to-left layout, the list box will automatically inherit this behavior and reverse its column order.
The RightToLeft property is a built-in feature for UserForms in VBA designed specifically for Right-to-Left (RTL) formatting. Applying this will flip the layout of the list box so that the first column appears on the far right.
Press Alt + F11 to open the Visual Basic for Applications (VBA) editor in your workbook.
In the Project Explorer pane, double-click the UserForm that contains your list box to open it in the designer view.
Press F4 to open the Properties window. Make sure the UserForm itself is selected (not the list box), find the 'RightToLeft' property, and change its value to True.

Reverse the Source Data Order on a Temporary Sheet
Use this workaround if you cannot change the UserForm's RightToLeft property. By dynamically reversing the columns on a hidden worksheet, you can feed the reversed data directly to the list box.
Upgrade Your Spreadsheet Experience with WPS Office
If you frequently work with complex macros, UserForms, and advanced spreadsheet functions, WPS Office provides a fully compatible, lightweight, and cost-effective environment to handle all your daily tasks seamlessly.
- 1. Download and Install: Visit the official WPS website to download the free installation package for your operating system.
- 2. Open your Excel files: Launch WPS Spreadsheets and open your existing .xlsm or .xlsx files directly without any conversion.
- 3. Enable Macros: If your file contains VBA code or UserForms, simply enable macros when prompted to continue your work without interruption.

Frequently Asked Questions
Does changing the TextAlign property to fmTextAlignRight reverse the columns?
No. The TextAlign property only adjusts the alignment of the text inside each individual column (e.g., aligning text to the right edge of the column). It does not alter the physical sequence or order of the columns in the list box.
Can I set the RightToLeft property only for the List Box?
In standard Excel VBA, the RightToLeft property is typically managed at the UserForm level. Setting it to True on the UserForm cascades the behavior to the controls within it. There is no direct RightToLeft property isolated exclusively for a standard VBA ListBox control without affecting the parent container.
How can I reverse the list box columns using VBA arrays instead of a temporary sheet?
You can use a VBA script to read the source range into a 2D array, use a loop to swap the columns so they are in reverse order, and then assign the modified array to the ListBox.List property. When doing this, leave the RowSource property blank.




