記載した作業を自動化したいと思っております。
ある特定のフォルダに日付が入ったファイルがあります。
(例:20151105.xls)
①そのフォルダから当日のファイル名を探します。
②特定シートをPDF化します。
(例:「作業〇〇」シート)
③PDF化したファイルを指定します。
(例:提出用.PDF)
④指定フォルダに格納します。
日付が入ったファイルと同じ場所に
"ファイル名.vbs"で保存してください。
要求と違うところがあれば教えてください。
Set objWShell = WScript.CreateObject("WScript.Shell") Set objShell = WScript.CreateObject("Shell.Application") Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject") Set objExcel = WScript.CreateObject("Excel.Application") 'コメントを取るとExcelがフォアグラウンドで開きます 'objExcel.Visible = True strCurPath = objWShell.CurrentDirectory on error resume next '①そのフォルダから当日のファイル名を探します。 Set objXlsFile = objExcel.Workbooks.Open( strCurPath & "\" & Year(Now()) & Right("0" & Month(Now()), 2) & Right("0" & Day(Now()), 2) & ".xls" ) if Err.Number <> 0 then objExcel.Quit() Wscript.Echo Err.Description & vbCrLf & strCurPath Wscript.Quit() end if '③特定シートをPDF化します(シートを指定、指定しない場合、アクティブシートがPDF化される) mySheetNumber = objXlsFile.Worksheets("作業○○").Index if Err.Number <> 0 then objExcel.Quit() Wscript.Echo Err.Description & vbCrLf & strCurPath Wscript.Quit() end if '④指定フォルダに格納します(フォルダを指定、指定しない場合、同じフォルダに格納される) Set objFolder = objShell.BrowseForFolder(0, "PDFファイル格納フォルダの指定(未指定時は現在のフォルダに格納します)", 0, "C:\") if Err.Number <> 0 then objExcel.Quit() Wscript.Echo Err.Description & vbCrLf & strCurPath Wscript.Quit() end if If Not objFolder Is Nothing Then strCurPath = objFolder.Items.Item.Path End If on error goto 0 '②特定シートをPDF化します ④指定フォルダに格納します Call objXlsFile.ExportAsFixedFormat(0 , strCurPath & "\提出用.pdf", xlQualityStandard, False, False, mySheetNumber, mySheetNumber, True ) '最後の"True"を"False"にすると、発行後にファイルがビューアーに表示されなくなります。 objExcel.Quit() Set objWShell = Nothing Set objFileSys = Nothing Set objExcel = Nothing Set objXlsFile = Nothing Wscript.Quit 0
コメント(2件)
Excel2007以降に限定しても宜しいですか?
http://logicalerror.seesaa.net/article/144750949.html