- ホーム
- EMF
- セル範囲をemfで保存2
エクセルで選択範囲をemf形式で保存(その2)
emfの読み方を調べていて、stdPictureを作成しなくても、ファイル保存できる事がわかりました。API関数、定数、構造体は省略します。
なお、セル以外に、ワークシートに貼り付けた写真とか、図形(複数同時も可)なども同様に保存可能です。
Sub clip2emf()
Dim hSrcMetaFile As Long '複製元メタファイルのハンドル
Dim hFileMetaFile As Long
If OpenClipboard(0) Then
hSrcMetaFile = GetClipboardData(CF_ENHMETAFILE)
' ハンドルを複製してから使用する
hSrcMetaFile = CopyEnhMetaFile(hSrcMetaFile, vbNullString)
CloseClipboard
End If
If hSrcMetaFile = 0 Then
MsgBox "emf取得に失敗"
Exit Sub
End If
'ファイルに保存
hFileMetaFile = CopyEnhMetaFile(hSrcMetaFile, "c:\temp.emf")
'メタファイルのクローズ
DeleteEnhMetaFile hFileMetaFile
DeleteEnhMetaFile hSrcMetaFile
End Sub