Hola, esta es una de muchas formas que existen.
Código no funcional por sà sólo
Private Sub Command1_Click()
'+++++++++++++++++++++++++++++++++++++++++++
' Reference : MicroSoft Excel 9.0 Object Library
'+++++++++++++++++++++++++++++++++++++++++++
Dim xl As Excel.Application
Dim wb As Object
Dim ws As Object
Dim excelwasnotrunnung As Boolean
' Make New Object
Set xl = CreateObject("Excel.Application")
' Display Screen
xl.Application.Visible = True
' Add Excel
xl.Workbooks.Add
xl.Worksheets("HOJA1").Name = "HelloSheet" ' Change Name of Sheet
Dim i, j, k, p As Integer
k = Data1.Recordset.RecordCount - 1 ' Count Total Row in DB
p = Data1.Recordset.Fields.Count - 1 ' cOUNT Total Column in DB
With DBGrid1
For i = 0 To k ' Starting from [0] because the start point of DBGRID
' is [0] <---- STARTING ROW
For j = 0 To p ' Starting from [0] because the start point of DBGRID
' is [0] <--- STARTING COLUMN
.Row = i
.Col = j
'------------------------------------------------------------
' IF Some of Data on your DB may have NULL. DO NOT worry !
' The relevant point of cells in the Excel will not be
' shown [without error]
'
' If you want to test !
' 1). Open DB1.mdb File
' 2). Delete any of data in the Field
' 3). Save
' 4). Run Program
'------------------------------------------------------------
xl.Worksheets("HelloSheet").Cells(i + 1, j + 1).Value = .Text
'----------------------- (i + 1, j + 1) --------------------
' This is very very important matter !
' If you not start + 1 . Then, You will see critical error
' during transfer data form DBGRID to Excel
' because The starting point of the Excel's cells is [Cells(1, 1)]
' NOT (0, 0) !
'
' In addition, If you want to shift the starting point of output
' on the Excel, Then you can change like ..
'
' .Cells(i + 5, j + 5).Value = .Text ... Whatever you want !
'------------------------------------------------------------------
Next
Next
End With
'---------------CÓDIGO AGREGADO POR EL COCHINÓN DE ranefi----------------------
xl.Worksheets.PrintOut Copies:=1 '<----ESTA ES LA PARTE DE CÓDIGO QUE AGREGUÉ
'------------------------------------------------------------------------------
Set wb = Nothing
Set xl = Nothing
End Sub
Deberás agregar esta referencia: MicroSoft Excel 9.0 Object Library y obviamente tener una conexión ya establecida. Nos vemos.