プロが教える店舗&オフィスのセキュリティ対策術

PowerPoint2010のjpg保存時の解像度の変更について

作成したパワーポイントを300ppiの解像度の画像(jpeg又はpng)として保存したいです。
「名前を付けて保存」にてツール→保存オプション→詳細設定にて
既定の解像度の設定欄があるのですが、96ppi150ppi220ppiの3種類しか選択できません。
色々と調べたのですが、結局お手上げ状態です。
どなたかご存じの方がおられましたらよろしくお願いします。

A 回答 (4件)

#1~3です。

これで最後にいたしますが、
http://rd.vector.co.jp/soft/dl/winnt/art/se42687 …
を用いると、PowerPoint2010からエクスポートした、EMF→画像サイズ指定でJPEGに変換できました。試しに10000×7500ピクセルで出力してみましたが、動作しました。(当然重いので、複数画像で試さないのが賢明です)
愛用しているVixでも変換可能ですが、こちらはBitmapに変換してからリサイズしているらしく、斜め線のギザギザは出力画像サイズを大きくしても変わり映えしませんでした。
なお、XP付属のPaintでも変換可能ですが、EMFの読み込みに、起動したことを忘れてしまうほど時間がかかり、画面の縮小表示がないため、ほんの一部しか表示されず、なんだか分からんといった状態で、使いものになりませんでした。
以上、ご参考まで。
    • good
    • 0

#1,2です。

もう見ていないかもしれませんが、調子に乗って...
まず#2のコードですが、PowerPoint2010/WinXPで動作しました。
さて、300dpi相当よりも高解像度で出力する方法を考えてみました。
#2のエクスポートのコードをいじっていて気がついたのですが、2010ではEMF形式が指定可能です(2000ではNGでした)。ひょっとするとと思い、名前を付けて保存のオプションを見ると、EMF形式があるではないですか。EMF形式は円を描く、線を引くといった動作を記録したベクトルデータですので、描画する先のサイズに応じた解像度になります。
従ってEMF形式で出力すれば、あとは任意解像度でJPEGなどに変換してくれるフリーソフトのお世話になれば良いことになります。
該当するソフトを一つ見つけましたが、これは2010からエクスポートしたemfには対応していない様でエラーになります(2010のemfはバージョンが上がっているのかも知れません)
http://www.vector.co.jp/soft/dl/win95/art/se1316 …
下記APIでクリップボード経由で出力したemfは読むことができました。(PowerPoint2010/WinXP)
Const CF_ENHMETAFILE = 14
Private Declare Function OpenClipboard Lib "user32" (ByVal hWndNewOwner As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal uFormat As Long) As Long
Private Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function DeleteEnhMetaFile Lib "gdi32" (ByVal hEmf As Long) As Long

Sub clip2emf()
Dim hSrcMetaFile As Long
Dim hFileMetaFile As Long
Dim myPresentation As Presentation
Dim mySlide As Slide
Dim i As Long

Set myPresentation = ActivePresentation
i = 1
For Each mySlide In myPresentation.Slides
mySlide.Copy
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:\test" & CStr(i) & ".emf")
DeleteEnhMetaFile hFileMetaFile
DeleteEnhMetaFile hSrcMetaFile
i = i + 1
Next mySlide
End Sub
    • good
    • 0

#1です。


件のMicrosoftのページを改めて眺めていたら、ヒントが載っておりました。下記コードで、PowerPoint2000では動きました。Pixel数と相当するdpiの関係は、当該ページを参考にして下さい。
Sub test()
Dim myPresentation As Presentation
Dim mySlide As Slide
Dim counter As Long

counter = 1
Set myPresentation = ActivePresentation
For Each mySlide In myPresentation.Slides
mySlide.Export "c:\slide" & counter & ".jpg", "JPG", 3000, 2250
counter = counter + 1
Next mySlide
End Sub
    • good
    • 0

最後に、


APPLIES TO Microsoft PowerPoint 2010
とありますが、本文中には記述が見あたらないのですが...
当方試した訳でもなんでもありませんので、ご参考まで。
How to change the resolution of a slide that you export as a picture in PowerPoint
http://support.microsoft.com/kb/827745/EN-US/
    • good
    • 0
この回答へのお礼

ありがとうございます。
確認したところ、PowerPoint 2003、2007のレジストリをいじるようです。
2010とは違うようなので、身を案じてこの方法はやめておきます。

お礼日時:2010/09/07 09:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!