
この図をご覧になっていただき、再度質問に対する回答をお願いします。
・ドロップダウンで出勤・休暇種の中から有休や各種特別な休暇(申請書の提出が必要)を選択するようにし、選んだ種目と未提出or提出済みが入力されるという処理を行いたい(自動で、連動して)。
・そして、すべて記入を終え提出ファイル作成ボタンを押したときに、提出し忘れた申請書はないか、メッセージを表示するようにしたい。
(予め用意されているVBAについては下記のとおりです。自分のイメージでは、この構文に加筆して追加するイメージです。しかし、目的を達成するために良い方法(難しくない、簡単、シンプル)があれば、そちらも教えていただければと思います。)
最低限、これらの方法を達成する方法とそれに必要な関数など御教授いただければと思います。
Sub 提出用ファイル作成()
If Range("D2") = Range("A41") + Range("F41") + Range("U33") And Range("A36") - Range("A37") = Range("C36") Then
MsgBox "提出用のファイルを作成します。"
Else
MsgBox "誤りがあります。"
Exit Sub
End If
Dim ReturnBook As String, TargetBook As String
Dim ReturnSheet As String, TargetSheet As String
ReturnBook = ActiveWorkbook.name ReturnSheet = ActiveSheet.name 'Call 新しいブックを開く Workbooks.Add TargetBook = ActiveWorkbook.name TargetSheet = ActiveSheet.name Workbooks(ReturnBook).Worksheets(ReturnSheet).Range("A1:AB41").Copy Workbooks(TargetBook).Worksheets(TargetSheet).Range("A1").PasteSpecial Paste:=xlPasteValues Workbooks(TargetBook).Worksheets(TargetSheet).Range("A1").PasteSpecial Paste:=xlPasteFormats Application.DisplayAlerts = False Workbooks(ReturnBook).Worksheets(ReturnSheet).Rows("41").Copy Workbooks(TargetBook).Worksheets(TargetSheet).Rows("41").PasteSpecial Paste:=xlPasteFormulas Workbooks(ReturnBook).Worksheets(ReturnSheet).Range("O2").Copy Workbooks(TargetBook).Worksheets(TargetSheet).Range("O2").PasteSpecial Paste:=xlPasteFormulas
Call 保存
End Sub
Private Sub 保存()
Dim fname As String
Dim tuki As String
Dim name As String
Dim Mnumber As String
ActiveSheet.Range("A1").Value = Format(Range("A1"))
tuki = Format(Range("$A$6"), "m")
name = Format(Range("$F$1"))
Mnumber = Format(Range("$D$1"))
fname = Application.GetSaveAsFilename( _
InitialFileName:=Mnumber + name + "勤務表_" + tuki + "月", _
FileFilter:="Excelファイル, *.xlsx", _
Title:="勤務表ファイルの保存")
If fname <> "False" Then
ActiveWorkbook.SaveAs Filename:=fname
Else
MsgBox "キャンセルされました"
End If
End Sub