VB6 フォームを画像として保存したい
        投稿者 KOZ  (社会人)
        
        投稿日時 
            2025/3/28 19:55:49
        
    
    
        非表示の PictureBox を追加し、フォームの画像を転送して SavePicture すればよいです。
    
Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
                                             ByVal x As Long, ByVal y As Long, _
                                             ByVal nWidth As Long, ByVal nHeight As Long, _
                                             ByVal hSrcDC As Long, _
                                             ByVal xSrc As Long, ByVal ySrc As Long, _
                                             ByVal dwRop As Long) As Long
Private Const SRCCOPY As Long = &HCC0020
Private Sub SaveFormAsImage()
    Dim pic As PictureBox
    Set pic = Me.Controls.Add("VB.PictureBox", "picTemp")
    ' ScaleMode をピクセル単位に設定 
    Me.ScaleMode = vbPixels
    pic.ScaleMode = vbPixels
    ' PictureBox のサイズをフォームに合わせる 
    pic.Width = Me.ScaleWidth
    pic.Height = Me.ScaleHeight
    pic.AutoRedraw = True  ' 描画を有効にする 
    ' フォームの内容を PictureBox にコピー 
    BitBlt pic.hDC, 0, 0, Me.ScaleWidth, Me.ScaleHeight, Me.hDC, 0, 0, SRCCOPY
    pic.Refresh
    ' 画像を保存 
    SavePicture pic.Image, "Z:\form_image.bmp"
    ' 一時 PictureBox の削除 
    Me.Controls.Remove "picTemp"
End Sub
Private Sub Command1_Click()
    SaveFormAsImage
    MsgBox "画像を保存しました", vbInformation
End Sub
PC内に動的に保存したいのですが、何か方法はありますでしょうか。ネットを探してもそれらしい記事がなくて。。宜しくお願いします。