En un modulo .BAS pones lo siguiente ...
'''''''''''''''''''
Private Declare Function PrintWindow Lib "user32" ( _
ByVal hwnd As Long, ByVal hdcBlt As Long, _
ByVal nFlags As Long) As Long
Public Sub Captura_Pantalla(Formulario As Form, err As ErrObject)
Dim oPictureBox As PictureBox
Set oPictureBox = Formulario.Controls.Add("vb.PictureBox", "oPictureBox1")
oPictureBox.AutoRedraw = True
oPictureBox.BorderStyle = vbBSNone
oPictureBox.Height = Formulario.Height
oPictureBox.Width = Formulario.Width
Call PrintWindow(Formulario.hwnd, oPictureBox.hDC, 0)
SavePicture oPictureBox.Image, App.Path & "\" & Format(Now, "yyyymmdd_hhmmss") & _
"_" & Formulario.Name & _
"_Error_" & err.Number & ".bmp"
Formulario.Controls.Remove "oPictureBox1"
End Sub
'''''''''''''''''''''''''''''
El SUB generara un BMP con la pantalla indicada en el PATH de tu aplicacion.
Desde tu aplicacion, al generarse un error llamas al SUB pasandole el fomulario y el Error generado ...
Ejemplo ...
Private Sub Command1_Click()
Dim nX As Long
On Error GoTo Error_Generico
' Tus instrucciones ...
Exit Sub
Error_Generico:
Call Captura_Pantalla( Me, Err )
MsgBox "Se genero pantalla de error !"
End Sub