人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelの外部制御について質問です。
記載した作業を自動化したいと思っております。

ある特定のフォルダに日付が入ったファイルがあります。
(例:20151105.xls)
?そのフォルダから当日のファイル名を探します。
?特定シートをPDF化します。
(例:「作業〇〇」シート)
?PDF化したファイルを指定します。
(例:提出用.PDF)
?指定フォルダに格納します。

●質問者: japan-nan
●カテゴリ:ビジネス・経営 コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● jan8
●500ポイント ベストアンサー

日付が入ったファイルと同じ場所に
"ファイル名.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
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ