Copia en un módulo el código que muestra David en este mensaje:
http://www.forosdelweb.com/f69/forma...screen-338110/
y en tu form usalo p.ej. así: (necesitas un picture2 que reciba la imagen a guardar)
Private Sub Command1_Click()
Picture2.Picture = CaptureWindow(Frame1.hWnd, False, 0, 0, Frame1.Width / Screen.TwipsPerPixelX, Frame1.Height / Screen.TwipsPerPixelY)
SavePicture Picture2, App.Path & "\ImagenCapturada.bmp"
MsgBox "Captura hecha"
End Sub
Esta captura es de un frame, y es la mejor que parece salir.
Si cambias Frame1 por Picture1 la captura se hace demasiado grande.
Por eso te recomiendo que metas tu picture en un frame y captures el frame.
Saludos