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関連

    Google Calendar APIを使って日本の祝日を取得するVBAマクロ

    祝日の一覧を用意する必要があったので、Google Calendar …

  2. アイコン一覧

    Office 2013 アイコン一覧(W)

    ・Office 2013 アイコン一覧 NUM…

  3. Office関連

    [リボン・カスタマイズ]dropDown要素の初期項目を指定する。

    MSDN フォーラムに「リボン:ドロップダウンリストにlabel初期値…

  4. Office関連

    Word文書をMicrosoft SwayのWebページに変換する方法

    先月のアップデート(バージョン 1812(ビルド 11126.2018…

  5. Office関連

    「EXCEL VBA 業務自動化 仕事の効率を劇的に上げるノウハウ」レビュー

    ※ 下記レビューはあくまでも個人的な感想です。2015年4…

  6. Office関連

    [Excel]XLOOKUP関数でより簡単に値を検索できるようになりました!

    下記記事の通り、2019年8月末にVLOOKUP関数やHLOOKUP関…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP