'ExportPageSize ' ページ・サイズ毎のページ数を MS Excel に出力する ' 2012/08/03 Option Explicit Dim oXL Dim oWB Dim oSheet Dim FieldsInfo Dim nfields Dim lines Dim columns Dim FieldInfo Dim file Dim value Dim DataArray() Dim oRng Dim A4Count Dim A3Count Dim PagesCount Dim PDFDocument Dim PDFPage Set oXL = pdfe.CreateObject("Excel.Application") If Not oXL Is Nothing Then '新しい Excel workbook を作成 Set oWB = oXL.Workbooks.Add Set oSheet = oWB.ActiveSheet '配列 DataArray を作成 Set FieldsInfo = pdfe.MetadataFieldsInfo nfields = 6 + FieldsInfo.count '項目数 ReDim DataArray(pdfe.SelectedFiles.Count, nfields - 1) '0オリジン '項目名を設定 DataArray(0, 0) = "ファイル名" DataArray(0, 1) = "ページ数" DataArray(0, 2) = "ファイルSize" DataArray(0, 3) = "A4ページ数" DataArray(0, 4) = "A3ページ数" columns = 5 '既定の項目名を設定 For Each FieldInfo In FieldsInfo DataArray(0, columns) = FieldInfo.Caption columns = columns + 1 Next '配列 DataArray に metadata を設定 lines = 1 For Each file In pdfe.SelectedFiles DataArray(lines, 0) = right(file.FileName,len(file.FileName)-instrrev(file.FileName,"\")) DataArray(lines, 1) = file.NumPages DataArray(lines, 2) = file.FileSize columns = 5 For Each value In file.Metadata DataArray(lines, columns) = CStr(value) columns = columns + 1 Next lines = lines + 1 Next Call PageCount() ' DataArray を Excel active sheet に貼り付け oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(pdfe.SelectedFiles.Count+1,nfields)).Value = DataArray ' Make sure Excel Is visible And give the user control ' of Microsoft Excel's lifetime. oXL.Visible = True oXL.UserControl = True ' オブジェクトを解放する Set oRng = Nothing Set oSheet = Nothing Set oWB = Nothing Set oXL = Nothing ' If MS Excel Not found Else MsgBox "Excel が見つかりません!" End If Sub PageCount() lines = 1 For Each PDFDocument In pdfe.SelectedFiles A4Count = 0 A3Count = 0 PagesCount = 0 PagesCount = PagesCount + PDFDocument.NumPages For Each PDFPage In PDFDocument.Pages If (PDFPage.Width >= 179 And PDFPage.Width <= 253 _ and PDFPage.Height >= 253 And PDFPage.Height <= 358) or _ (PDFPage.Height >= 179 And PDFPage.Height <= 253 _ and PDFPage.Width >= 253 And PDFPage.Width <= 358) Then A4Count = A4Count + 1 Elseif (PDFPage.Width >= 253 And PDFPage.Width <= 358 _ and PDFPage.Height >= 358 And PDFPage.Height <= 507) or _ (PDFPage.Height >= 253 And PDFPage.Height <= 358 _ and PDFPage.Width >= 358 And PDFPage.Width <= 507) Then A3Count = A3Count + 1 End If Next DataArray(lines, 3) = A4Count DataArray(lines, 4) = A3Count lines = lines + 1 Next End Sub
'ExportPageSize2 ' ページ・サイズ毎のページ数を MS Excel に出力する ' Calculated Columns の読み込みを追加 ' 2012/08/04 Option Explicit Dim oXL Dim oWB Dim oSheet Dim FieldsInfo Dim nfields Dim lines Dim columns Dim FieldInfo Dim file Dim value Dim DataArray() Dim oRng Dim A4Count Dim A3Count Dim PagesCount Dim PDFDocument Dim PDFPage Set oXL = pdfe.CreateObject("Excel.Application") If Not oXL Is Nothing Then '新しい Excel workbook を作成 Set oWB = oXL.Workbooks.Add Set oSheet = oWB.ActiveSheet '配列 DataArray を作成 Set FieldsInfo = pdfe.MetadataFieldsInfo nfields = 8 + FieldsInfo.count '項目数 ReDim DataArray(pdfe.SelectedFiles.Count, nfields - 1) '0オリジン '項目名を設定 DataArray(0, 0) = "ファイル名" DataArray(0, 1) = "ページ数" DataArray(0, 2) = "ファイルSize" DataArray(0, 3) = "A4ページ数" DataArray(0, 4) = "A3ページ数" DataArray(0, 5) = "最小サイズ" DataArray(0, 6) = "最大サイズ" columns = 7 '既定の項目名を設定 For Each FieldInfo In FieldsInfo DataArray(0, columns) = FieldInfo.Caption columns = columns + 1 Next '配列 DataArray に metadata を設定 lines = 1 For Each file In pdfe.SelectedFiles DataArray(lines, 0) = Right(file.FileName, Len(file.FileName) - InStrRev(file.FileName, "\")) DataArray(lines, 1) = file.NumPages DataArray(lines, 2) = file.FileSize columns = 7 For Each value In file.Metadata DataArray(lines, columns) = CStr(value) columns = columns + 1 Next lines = lines + 1 Next Call PageCount() Call PageSizes() ' DataArray を Excel active sheet に貼り付け oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(pdfe.SelectedFiles.Count+1,nfields)).Value = DataArray ' Make sure Excel Is visible And give the user control ' of Microsoft Excel's lifetime. oXL.Visible = True oXL.UserControl = True ' オブジェクトを解放する Set oRng = Nothing Set oSheet = Nothing Set oWB = Nothing Set oXL = Nothing ' If MS Excel Not found Else MsgBox "Excel が見つかりません!" End If Sub PageCount() lines = 1 For Each PDFDocument In pdfe.SelectedFiles A4Count = 0 A3Count = 0 PagesCount = 0 PagesCount = PagesCount + PDFDocument.NumPages For Each PDFPage In PDFDocument.Pages If (PDFPage.Width >= 179 And PDFPage.Width <= 253 _ And PDFPage.Height >= 253 And PDFPage.Height <= 358) Or _ (PDFPage.Height >= 179 And PDFPage.Height <= 253 _ And PDFPage.Width >= 253 And PDFPage.Width <= 358) Then A4Count = A4Count + 1 ElseIf (PDFPage.Width >= 253 And PDFPage.Width <= 358 _ And PDFPage.Height >= 358 And PDFPage.Height <= 507) Or _ (PDFPage.Height >= 253 And PDFPage.Height <= 358 _ And PDFPage.Width >= 358 And PDFPage.Width <= 507) Then A3Count = A3Count + 1 End If Next DataArray(lines, 3) = A4Count DataArray(lines, 4) = A3Count lines = lines + 1 Next End Sub Sub PageSizes() lines = 1 For Each File In pdfe.SelectedFiles DataArray(lines, 5) = file.Metadata.Calculated(1) DataArray(lines, 6) = file.Metadata.Calculated(2) lines = lines + 1 Next End Sub