Excel MVPの伊藤さんがブログで、WordのPageオブジェクトを扱うマクロを紹介されています。
あまり扱われることがありませんが、このPageオブジェクトにはページ内容を画像形式で取得できるEnhMetaFileBitsプロパティがあります。
名前の通り、このプロパティからはEMF形式のバイト配列が返ってくるので、これを使うと各ページを画像として取得することができます。
Option Explicit Public Sub Sample() DocumentToEMF "C:\Test\EMF" End Sub Public Sub DocumentToEMF(ByVal SaveFolderPath As String) Dim tmp As Word.WdViewType Dim p As Word.Page Dim i As Long Const adTypeBinary = 1 Const adSaveCreateOverWrite = 2 i = 1 '初期化 SaveFolderPath = AddPathSeparator(SaveFolderPath) tmp = ActiveWindow.View.Type ActiveWindow.View.Type = wdPrintPreview With CreateObject("ADODB.Stream") .Type = adTypeBinary For Each p In ActiveWindow.ActivePane.Pages .Open .Position = 0 .Write p.EnhMetaFileBits .SaveToFile SaveFolderPath & "Page" & i & ".emf", adSaveCreateOverWrite .Close i = i + 1 Next End With ActiveWindow.View.Type = tmp End Sub Private Function AddPathSeparator(ByVal str As String) As String 'パスの区切り文字追加 If Right(str, 1) <> ChrW(92) Then str = str & ChrW(92) AddPathSeparator = str End Function
EnhMetaFileBitsプロパティはPageオブジェクト以外にも、SelectionオブジェクトやRangeオブジェクトにもあるので、特定の範囲のみを画像化したい場合は、そちらを使うと良いでしょう。
この記事へのコメントはありません。