Office関連

各ページを画像に変換するWordマクロ

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オブジェクトにもあるので、特定の範囲のみを画像化したい場合は、そちらを使うと良いでしょう。

2015年12月の人気記事前のページ

オトカドール 3rdドリームをプレイしてきたよ(3)次のページ

関連記事

  1. Office関連

    [Office 365 Solo]日本語環境以外では使えるの?

    Office 365 Soloを使ってみて、疑問に思ったことの一つが“…

  2. アイコン一覧

    Office 2013 アイコン一覧(I)

    ・Office 2013 アイコン一覧 NUM…

  3. Office関連

    Excel Services JavaScript APIを試してみました(1)

    前回の記事で紹介した「ExcelMashup.com」、このサイトによ…

  4. Excel

    Excelのアイデア機能でグラフやピボットグラフを一発作成

    Insider版のExcelに「アイデア」機能が追加されました。…

  5. Office関連

    受信メールに対して自動的に返信するOutlookマクロ

    「Outlook VBA 自動返信」といったキーワード検索でのアクセス…

  6. Office アドイン

    [Office用アプリ]JavaScript API for Office ライブラリ v1.1

    2014/01/24 追加記事を書きました。・JavaScript…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP