こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの表を範囲指定でPDF化

表の部分だけを範囲指定してPDF化、画像のよう状態で他ソフトで使用したいと考えております。

範囲指定や、印刷する部分を「選択した部分」に設定し、クセロ、primoなどのフリーソフト、MicrosoftのPD保存アドインなど試しましたが、いずれもA4などの紙の上に表が貼り付いている状態でしかPDF作成ができませんでした。

有料ソフトでも構わないので、知っている方がいたら教えてください。(環境はxp-office2007です)

投稿日時 - 2009-03-28 16:27:31

QNo.4834001

困ってます

質問者が選んだベストアンサー

VBAで良ければ、2007で動くかどうか不明です(当方2000)が、選択範囲をクリップボード経由で、emf形式で保存するコードです。
selectionToEMFfileを実行します。
保存後、Word2000の例では、挿入/図/ファイルからで、読み込めます。

Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Type PICTDESC
cbSizeofstruct As Long
picType As Long
hEmf As Long
Padding(0 To 1) As Long
End Type
Const PICTYPE_ENHMETAFILE = 4

Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (lpPictDesc As PICTDESC, riid As GUID, ByVal fOwn As Long, lplpvObj As Object) As Long
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
Const CF_ENHMETAFILE = 14
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 selectionToEMFfile()
If TypeName(Selection) <> "Range" Then Exit Sub
Selection.Copy
SavePicture CreatePictureFromCB(), "c:\saveEmfTest.emf"
End Sub

'CreatePictureFromCB()は下記より
'http://www.moug.net/faq/viewtopic.php?t=34259
Private Function CreatePictureFromCB() As Object
'そのまま載せて良いか分かりかねますので、リンク先をご覧下さい。
End Function

投稿日時 - 2009-03-28 20:15:34

お礼

vbaの意味は半分も解りませんが、コピペさせていただき、無事目的の動作ができそうです。とりあえずお礼申し上げます。

投稿日時 - 2009-03-28 22:09:12

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

PDFファイル上で「A4などの紙の上に表が貼り付いている状態」と「画像のよう状態」との違いは何ですか?

投稿日時 - 2009-03-28 17:44:36

お礼

言葉不足で申し訳ありません。現在はphotoshopで手動で切り抜いているので、その手間を省きたいのです。大量のexcelの表をこの操作をしなければならないもので...

投稿日時 - 2009-03-28 19:49:44

ANo.1

ということなら、画像にしてしまうというのは?
スクリーンキャプチャ(ファンクションキーのならびにあるPrint Screen キー)で画面をコピーして
ペイントなどに貼り付け必要な個所のみ残して保存すれば、画像ファイルは簡単に出来ますが?

投稿日時 - 2009-03-28 16:35:52

お礼

早速の回答ありがとうございます。
画像化も試しましたが、画質の劣化、その後の編集などやはりPDFで扱いたいのです。最終的にはmacで使用したく、現在は、windowsのexcelでPDF化、photoshopで手動で表部分を切り取り、その後macのphotoshopで読み取りとかなり面倒なことをしています。(mac-officeのexcelは表の変形やフォント問題があるため使用しないようにしています)
言葉足らずで申し訳ありません。やはりできないのでしょうか?

投稿日時 - 2009-03-28 19:46:25

あなたにオススメの質問