[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダ内のブック全体をPDFにしたい』(たま)
フォルダの中にある、大量のエクセルブックを毎月手作業でPDFに変換しています。 手順としては、CTRL+P ⇒ エクスポート ⇒ PDF/XPSの作成 ⇒ オプション ⇒ ブック全体 という流れです。 これを100回程度繰り返しています。 ボタン一つで片付く方法はありませんか? 教えてください。よろしくお願いします!
< 使用 Excel:Excel2011(Mac)、使用 OS:Windows8 >
Macの事はと表記の仕方はわかりませんがWindows8でExcel2011(Mac)って使えるのですか 解決はしませんが 印刷用プリンターの標準をMicrosoftのPDFプリンターに設定しておいて 印刷するファイルを全て選択して印刷をすると全てPDFにしようとはしますが ブック一つ一つに名前を付けて保存する必要があります(保存場所選択して名前を付けてOKボタン押さないと次に進みません) MicrosoftのPDFプリンターだといちいち名前を付けないとだめですがAcrobatなどのプリンターだと ブックの名前のまま保存できます(保存場所選択してOKボタン押さないとだめですが) AcrobatのPDFプリンターが入っていれば右クリックなどでAdobePDFに変換やAcrobatで結合などもできますが マクロなどの事はわかりませんがそのあたりが自動で出来れば解決できそうなのかな?
(なるへそ) 2021/01/21(木) 18:07
マイクロソフト以外のフリーのPDFやいきなりPDFなどの簡易PDF作成ソフトのPDFプリンターは 試していないので挙動はわかりませんが 名前を付けて保存するときにブック名がAcrobatのPDFの時みたいに最初から入っていれば OKボタンを押すだけなのでエクスポートしてPDF作成するより作業工数は少なくなるのではないでしょうか (なるへそ) 2021/01/22(金) 12:05
(マナ) 2021/01/23(土) 18:48
(たま) 2021/01/24(日) 01:10
自分の仕事にも役立ちそうだったので、作ってみました。 テキストファイルに以下のコードをコピペして、XLS2PDF.VBS とか拡張子を VBSにして保存します。 このファイルにエクセルのファイルやらフォルダやらをドラッグドロップするとPDFに変換されます。 無口なスクリプトなので、注意してください。
'=== XLS2PDF.VBS ブック全体をPDF化 === Const FormatType = 0 ' 0:PDF 1:XPS Const fileext = ".pdf" ' Const Quality = 0 ' 0: standard 1:minimum Dim FSO Dim xlApp
Sub xls2pdf(File) Dim WB If isEmpty(xlApp) Then Set xlApp = CreateObject("Excel.Application") xlApp.DisplayAlerts = False End If pdffilename = File.ParentFolder & "\" & FSO.GetBaseName(File) & fileext Set WB = xlApp.Workbooks.Open( File.Path ) On Error Resume Next WB.ExportAsFixedFormat FormatType , pdffilename , Quality On Error Goto 0 WB.Close False End Sub
Function lsXLSFile( File ) lsXLSFile = "XLS" = Ucase(Left(FSO.GetExtensionName(File) , 3)) End Function
Sub Main()
Set FSO = CreateObject("Scripting.FileSystemObject") For Each Arg in Wscript.Arguments Select Case True Case FSO.FileExists(Arg) Set File = FSO.GetFile(Arg) If lsXLSFile(File) Then Call xls2pdf(File) Case FSO.FolderExists(Arg) For Each File In FSO.GetFolder(Arg).Files If lsXLSFile(File) Then Call xls2pdf(File) Next End Select Next
On Error Resume Next xlApp.Quit Set xlApp = Nothing Set FSO = Nothing On Error Goto 0
End Sub
If Wscript.Arguments.Count = 0 Then Quit Call Main() '=== ここまで === (´・ω・`) 2021/01/25(月) 15:13
まさにこれって感じです。
仕事が断然早くなりそうです。本当にありがとうございました!
また教えてください!
私も勉強します。
(たま) 2021/01/26(火) 21:42
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.