Ever get the urge to do a little "design" with those old box-drawing
characters that were so common in the days of DOS? Yeah, me either. But I do see
the question asked from time to time. In particular, with regard to the need to
redistribute fonts with the final product. The good news is, Windows provides a
stock font that emulates the fixed-width ASCII characters we lived with
throughout the 80s. In case you're too young to remember, here's what will
amount to a dose of
déjà vu for the rest of us:

As you can see, there's more than just box-drawing characters there. You can
use this font to create your own card games too! <g> Stock fonts are
always available via the GetStockObject API function, which retrieves a handle
you can pass to SendMessage with WM_SETFONT:
Public Sub SetOemFont(ByVal hWnd As Long)
Dim hFont As Long
Const OEM_FIXED_FONT As Long = 10
Const WM_SETFONT As Long = &H30
' Select the stock font into the client window.
' Not necesary to call DeleteObject.
hFont = GetStockObject(OEM_FIXED_FONT)
Call SendMessage(hWnd, WM_SETFONT, hFont, True)
End Sub
Applying this to any control that exposes an hWnd property is as simple as
passing that value to the above routine. I've marked this project as
"VBA-Ready", and technically it is. The only problem with using it in VBA is
that most of the controls are windowless, and even those that aren't don't tend
to expose the requisite hWnd property. Still, if you can obtain an hWnd, you can
select a stock font into it.