Si personalizas las propiedades CurrentX y CurrentY del objeto Printer, no debieras tener problemas con los márgenes. Observa el siguiente código:
Private Sub CMPrint_Click()
´Cambia el tipo de escala a centímetros
Printer.ScaleMode = vbCentimeters
´Establece los márgenes a 1.5 cm. a cada lado
Printer.CurrentX = 1.5
Printer.CurrentY = 1.5
´Imprime el nombre de la impresora
Printer.Print Printer.DeviceName
Printer.EndDoc
End Sub
Desgraciadamente, el método Print modifica los valores de CurrentX y CurrentY, ante lo cual lo más conveniente es ir guardando en variables auxiliares, la posición en la que se imprimirá. Por ejemplo:
Private Sub CMPrint_Click()
Dim CurX, Lineas
Printer.ScaleMode = vbCentimeters
´Establece el margen horizontal a 1.5 cm.
CurX = 1.5
For Lineas = 1 To 5
Printer.CurrentX = CurX
Printer.CurrentY = Lineas * 1.5
Printer.Print Printer.DeviceName
Next Lineas
Printer.EndDoc
End Sub
Pruébalo con un botón llamado CMPrint a ver si te resulta. De estar correcto, debería imprimir a la misma altura con todas las impresoras.
Cualquier duda, solo mándame un correo...