Option Explicit 'プログラムのメインモジュール '---------- ワークシートの構成 ---------- 'プログラムワークシートの構成 'Sheet1:タイトル 'Sheet2:社員一覧表 'Sheet3:賃金台帳 'Sheet4:月別給与賞与集計表 'Sheet5:年末調整支援資料 'Sheet6:社会保険月額算定届支援資料 'Sheet7:雇用保険確定申告支援資料 'Sheet8:給与賞与支払明細書 'Sheet9:金種一覧表 'データワークシートの構成 'Sheet1:システム基礎情報 'R1C1:データファイルの認証 'R2C1:政府管掌健康保険加入の有無 'R2C2:雇用保険加入の有無 'R2C3:雇用保険区分 'R3C1:期首年月日 'R4C1-R4C5:ユーザー設定給与手当項目 'R4C6-R4C10:ユーザー設定給与控除項目 'R5C1-R5C4:ユーザー設定賞与控除項目 'Sheet2:社員個人情報 'Sheet3:扶養親族情報 'Sheet4:社員給与体系情報(社会保険標準月額等) 'Sheet5:社員別給与賞与情報 'Sheet6:社員別勤怠情報 'Sheet7:配偶者所得 'Sheet8:保険控除額/申告による社会保険料/住宅取得等特別控除 'Sheet9:前職分源泉徴収表 'Sheet10:年末調整資料 'Sheet11: Public gstrName As String 'データブック名 Public gFlg As Boolean 'フラグ Public gKakoFlg As Boolean '過去データアクセスのフラグ Public gReForm As Boolean '過去データアクセスフォームのメッセージ Public gYear As Integer '過去データを表示する年 Private mstrBarsName() As String 'コマンドバーの名前を確保 Private mi As Integer '開いているコマンドバーの数 Public Sub Main() 'アプリケーションのスタート Dim objBars As CommandBar Dim i As Integer Dim strPath As String '開いているコマンドバーの数を検査 mi = Application.CommandBars.Count '配列を再定義 ReDim mstrBarsName(mi - 1) As String '開いているコマンドバーの名前を確保し、非表示にする i = 0 For Each objBars In CommandBars If objBars.Visible = True Then If objBars.Name <> "Worksheet Menu Bar" Then mstrBarsName(i) = objBars.Name objBars.Visible = False End If End If i = i + 1 Next '数式バーとステータスバーを非表示 With Application .DisplayFormulaBar = False .DisplayStatusBar = False End With '給与計算システムのカレントディレクトリに移動 strPath = ThisWorkbook.Path ChDrive strPath ChDir strPath End Sub Public Sub MainClose() 'アプリケーションの終了 Dim objBars As CommandBar Dim clsDataFile As clsFiles Dim obj As Object Dim i As Integer Dim intMsg As Integer 'データを保持した状態で、配列の再定義 ReDim Preserve mstrBarsName(mi - 1) As String '開いていたコマンドバーを再表示する i = 0 For Each objBars In CommandBars If objBars.Name = mstrBarsName(i) Then If objBars.Visible = False Then objBars.Visible = True End If End If i = i + 1 Next '数式バーとステータスバーを再表示 With Application .DisplayFormulaBar = True .DisplayStatusBar = True End With 'ファイルクラスのインスタンス If gstrName <> "" Then intMsg = MsgBox("データファイルを閉じます。", 64 + 0, "給与計算システム") If intMsg = 7 Then Exit Sub Set clsDataFile = New clsFiles clsDataFile.Name = gstrName clsDataFile.CloseWorkBook 'クラスの開放 Set clsDataFile = Nothing End If '配列の開放 If IsEmpty(mstrBarsName) = True Then Erase mstrBarsName '自分をクローズ If gFlg = False Then ThisWorkbook.Worksheets("Sheet1").Activate If ActiveWindow.Visible = False Then ActiveWindow.Visible = True ThisWorkbook.Close False ElseIf gFlg = True Then ThisWorkbook.Saved = True End If gFlg = False End Sub '立ち上げ時にヴァージョン情報を表示する Public Sub PreviwAbout() gFlg = False frmAbout.Show End Sub 'ブックの表示/非表示の検査 Public Sub HideBooks() On Error Resume Next If ActiveWindow.Visible = True Then ActiveWindow.Visible = False End Sub