Nessuna predica, non sono il tipo...
volevo solo richiamare l'attenzione sulla correttezza da mantenere verso i partecipanti di un forum che dedicano il loro tempo per aiutarti a risolvere i problemi.
se dici che va tutto bene, per poi porre la stessa identica domanda, cosa dai da pensare?
fai credere che hai capito e che hai risolto, quando in realtà non è affatto vero...

se permetti, da un po' fastidio...

in ogni caso, per risolvere il tuo problema, come ti è stato detto, devi impostare ad ogni iterazione CurrentX e CurrentY.

per CurrentX, potresti usare un Array di valori che rappresentano le "colonne"

è ovvio che l'array deve avere un numero di dimensioni identico al numero di colonne, quindi se hai 3 colonne nella Flex:

codice:
Dim r
Dim c
    Colonne = Array(1000, 2000, 3000)
    Riga = 1000 
 With MSFlexGrid1
        For r = 0 To .Rows - 1
        Riga = Riga + (R * 300) ' incrementa la posizione della riga di 300 Twips per volta
            For c = 1 To .Cols - 1
                Printer.CurrentY = Riga ' ad ogni colonna stampata riporta CurrentY al giusto valore di riga
                Printer.CurrentX = Colonne(C-1) ' prende dall'array la coordinata della colonna
                Printer.Print .TextMatrix(r, c)
            Next c
        Next r
    End With
    Printer.EndDoc
Boolean