Si usas el objeto Printer te puedes encontrar con que VB pasa de ti y siempre imprime con el tipo de letra por defecto.
Yo lo solucioné de esta forma:

Printer.Print "" 'Esta linea parece ser que reinicializa la impresora
Printer.Font.Size = 14
Printer.Font = "Arial"
Printer.Print Txt
Printer.EndDoc

----------------------------------------------------------------------------------------------

Suponiendo un DataGrid enlazado a un adodc, haz algo como esto:

if not adodc.recordset.eof then
adodc.recordset.movefirst
print DataGrid.Columns(0).Caption; Tab(anchoColumna); DataGrid.Columns(1).Caption; Tab(AnchoColumna); ...
do while not adodc.recordset.eof
print Datagrid.Columns(0).text; Tab(AnchoColumna); DataGrid.Columns(1).text; Tab(AnchoColumna); ....

adodc.recordset.movenext
// Controlar salto de pagina
loop
end if

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)