Option Explicit '印刷関連モジュー '印刷:社員一覧表印刷 Public Sub PrintSyainItiran() Dim objws() As Worksheet 'ワークシート Dim clsSyain As clsPersonal '社員クラス Dim lngRow As Long 'レコード Dim i As Long '長整数型カウンタ Dim A() As Variant 'ダミー Dim intMsg As Integer 'メッセージの戻り値 Dim vntDialog As Variant 'ダイアログの戻り値 intMsg = MsgBox("社員一覧表を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc '配列再定義 ReDim objws(1) As Worksheet ReDim A(28) As Variant 'ワークシート Set objws(0) = ThisWorkbook.Worksheets("Sheet2") Set objws(1) = Workbooks(gstrName).Worksheets("Sheet2") 'クラスのインスタンス Set clsSyain = New clsPersonal 'レコードの取得 lngRow = objws(1).Cells(65536, 1).End(xlUp).Row 'データの取得 For i = 1 To lngRow clsSyain.GetProperty objws(1), i, A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11), A(12), A(13), _ A(14), A(15), A(16), A(17), A(18), A(19), A(20), A(21), A(22), A(23), A(24), A(25), A(26), A(27), A(28) clsSyain.MoveData objws(0), i + 3 Next '-----印刷----- 'レコード再取得し罫線を引く lngRow = objws(0).Cells(65536, 1).End(xlUp).Row objws(0).Activate objws(0).Range(Cells(4, 1), Cells(lngRow, 5)).Borders(xlInsideVertical).LineStyle = xlContinuous '横幅を調整 With ActiveSheet.PageSetup .PaperSize = xlPaperA4 .Zoom = False .FitToPagesWide = 1 .PrintTitleRows = "$3:$3" End With 'ダイアログを表示しタイトル行を設定する vntDialog = Application.Dialogs(xlDialogPrint).Show If vntDialog = False Then Exit Sub '配列の開放 If IsEmpty(A) = True Then Erase A 'クラスの開放 Set clsSyain = Nothing objws(0).Activate objws(0).Range(Cells(4, 1), Cells(65536, 5)).Clear 'オブジェクトの開放 For i = 0 To 1 Set objws(i) = Nothing Next Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '印刷:給与賞与明細書 Private Sub MeisaiForm() Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("支給明細書を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc frmSikyu.Show Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '明細書フォームからの呼び出し Public Sub PrintMeisaisyo() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 Set objws = ThisWorkbook.Worksheets("Sheet8") objws.Activate '用紙を指定 ActiveSheet.PageSetup.PaperSize = xlPaperA4 ActiveSheet.PageSetup.Zoom = False ActiveSheet.PageSetup.FitToPagesTall = 1 ActiveSheet.PageSetup.FitToPagesWide = 1 vntDialog = Application.Dialogs(xlDialogPrint).Show(, , , 1) Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '集計:賃金台帳 Public Sub TinginDautyo() If gstrName = "" Then GoTo BlankError '賃金台帳作成 frmTingin.Show Exit Sub BlankError: MsgBox "給与賞与データがありません。" & vbCrLf & "確認して下さい。", 48 + 0, "給与計算システム" End Sub '印刷:賃金台帳 Public Sub PrintTinginDaityou() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 Set objws = ThisWorkbook.Worksheets("Sheet3") objws.Activate '横幅を調整 With ActiveSheet.PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA4 .Zoom = False .FitToPagesWide = 1 End With vntDialog = Application.Dialogs(xlDialogPrint).Show objws.Range(Cells(4, 2), Cells(65536, 14)).Clear Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '集計:給与賞与支払一覧表 Public Sub SiharaiItiran() If gstrName = "" Then GoTo BlankError '過去データアクセスを不可 mdlMain.gKakoFlg = False '給与賞与支払一覧表 frmItiran.Show Exit Sub BlankError: MsgBox "給与賞与データがありません。" & vbCrLf & "確認して下さい。", 48 + 0, "給与計算システム" End Sub '印刷:給与賞与月別一覧表 Public Sub PrintItiranHyou() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 Set objws = ThisWorkbook.Worksheets("Sheet4") objws.Activate '用紙を指定 With ActiveSheet.PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA4 End With vntDialog = Application.Dialogs(xlDialogPrint).Show objws.Range(Cells(5, 1), Cells(65536, 14)).Clear Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '印刷:年末調整支援資料 Public Sub NentyoForm() Dim objws As Worksheet 'ワークシート Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("年末調整支援資料を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc frmBar.Show Set objws = ThisWorkbook.Worksheets("Sheet5") objws.Range(Cells(6, 1), Cells(65536, 13)).Clear Set objws = Nothing Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '年末調整支援資料フォームから呼び出す Public Sub PrintNentyouSiryou() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 'ダイアログを表示しタイトル行を設定する Set objws = ThisWorkbook.Worksheets("Sheet5") objws.Activate '用紙を指定 With ActiveSheet.PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA4 .PrintTitleRows = "$3:$5" End With vntDialog = Application.Dialogs(xlDialogPrint).Show Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '印刷:社会保険月額算定届支援資料 Public Sub SyakaiForm() Dim objws As Worksheet 'ワークシート Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("社会保険月額算定届支援資料を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc frmBar2.Show Set objws = ThisWorkbook.Worksheets("Sheet6") objws.Range(Cells(4, 1), Cells(65536, 6)).Clear Set objws = Nothing Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '社会保険月額算定届支援資料フォームから呼び出す Public Sub PrintSyakai() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 'ダイアログを表示しタイトル行を設定する Set objws = ThisWorkbook.Worksheets("Sheet6") objws.Activate '用紙を指定 With ActiveSheet.PageSetup .PaperSize = xlPaperA4 .PrintTitleRows = "$3:$3" End With vntDialog = Application.Dialogs(xlDialogPrint).Show Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '印刷:雇用保険確定申告支援資料 Public Sub KoyouForm() Dim objws As Worksheet 'ワークシート Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("雇用保険確定申告支援資料を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc frmBar3.Show Set objws = ThisWorkbook.Worksheets("Sheet7") objws.Activate objws.Range(Cells(5, 2), Cells(22, 7)).ClearContents Set objws = Nothing Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '雇用保険確定申告支援資料フォームから呼び出す Public Sub PrintKoyou() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 'ダイアログを表示 Set objws = ThisWorkbook.Worksheets("Sheet7") objws.Activate '用紙を指定 With ActiveSheet.PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA4 End With vntDialog = Application.Dialogs(xlDialogPrint).Show Set objws = Nothing If vntDialog = False Then Exit Sub End Sub '印刷:金種一覧表 Public Sub KinsyuForm() Dim objws As Worksheet 'ワークシート Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("金種一覧表を印刷しますか。", 32 + 4, "給与計算システム") '「いいえ」のとき If intMsg = 7 Then Exit Sub If gstrName = "" Then GoTo ErrorProc gFlg = True frmBar4.Show Set objws = ThisWorkbook.Worksheets("Sheet9") objws.Activate objws.Range(Cells(4, 1), Cells(65536, 12)).Clear Set objws = Nothing Exit Sub ErrorProc: MsgBox "データファイルが選択されていません。" & vbCrLf & "データファイルを選択して下さい。", 48 + 0, "給与計算システム" End Sub '金種一覧表フォームから呼び出す Public Sub PrintKinsyu() Dim objws As Worksheet 'ワークシート Dim vntDialog As Variant 'ダイアログの戻り値 'ダイアログを表示 Set objws = ThisWorkbook.Worksheets("Sheet9") objws.Activate '横幅を調整 edit 2004/05/07 無効 With ActiveSheet.PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA4 .Zoom = False '.FitToPagesWide = 1 End With vntDialog = Application.Dialogs(xlDialogPrint).Show Set objws = Nothing If vntDialog = False Then Exit Sub End Sub