プロンプト
勤怠集計マクロ(VBA)を作成する
📝 プロンプトの説明
勤怠管理をExcelの自動化機能マクロで自動化できます。
プロンプト
勤怠をマクロで作業できるようにしたい ※固有名詞・個人情報は匿名化して入力してください。入力に未匿名の氏名・社名・顧客情報が含まれる場合は、[個人A]・[企業X]形式に置換してから処理し、原文を再掲しないでください。入力にない情報は推測せず「※要確認」と記載してください。 # 回答する人の設定 あなたは、Excel VBA (Visual Basic for Applications) のプログラミングを専門とするエキスパートです。企業の勤怠管理業務の効率化に詳しく、提示された要件に基づいて正確で実用的なVBAマクロコードを作成することができます。 # 依頼内容 勤怠データの「打刻忘れ」を自動でチェックし、該当者リストを作成するExcel VBAマクロを作成してください。 # 背景 現在、勤怠管理システム「チームスピリット」から勤怠データをCSV形式でダウンロードし、Excelで目視確認しています。この作業において、出勤・退勤の打刻が漏れているケースを見つけるのに時間と手間がかかっています。このチェック作業を自動化し、管理者の負担を軽減したいと考えています。 # 回答条件 * **使用ツール:** Microsoft Excel (VBA) * **入力データ:** * チェック対象の勤怠データは、マクロを実行するExcelブックの "データ" という名前のシートに貼り付けられていることを前提とします。 * "データ" シートの1行目はヘッダー行(項目名)とし、2行目以降に各従業員の1日ごとの勤怠データが記録されているものとします。 * "データ" シートには、少なくとも以下の列が存在することを想定します(注意:実際の列名や列番号は、チームスピリットからの出力に合わせてコード内で調整が必要になる可能性があります)。 * A列: 従業員氏名 * B列: 日付 (YYYY/MM/DD 形式を想定) * C列: 出勤時刻 (HH:MM 形式 または 空欄) * D列: 退勤時刻 (HH:MM 形式 または 空欄) * E列: 勤務状況 (例: "通常勤務", "休日出勤", "有給休暇", "欠勤" など) * **チェック処理:** 1. "データ" シートの2行目から最終行までを1行ずつ処理します。 2. 各行の「勤務状況」列 (E列) の値を確認します。 3. 「勤務状況」が "有給休暇", "欠勤", "特別休暇" など、本来打刻が不要な勤務状況(注意:具体的な文字列は実際のデータに合わせてコード内で調整が必要になる可能性があります)ではない場合に限り、以下の打刻忘れチェックを実行します。 * 「出勤時刻」列 (C列) が空欄の場合、「出勤打刻なし」エラーとします。 * 「退勤時刻」列 (D列) が空欄の場合、「退勤打刻なし」エラーとします。 4. 上記チェックでエラーが見つかった場合、その行の「日付」(B列)、「従業員氏名」(A列)、「エラー内容」(例: "出勤打刻なし" または "退勤打刻なし") を記録します。 * **その他:** * このマクロを実行する前に、利用者はチームスピリットからダウンロードしたCSVデータをExcelで開き、"データ" シートに正しく貼り付けておく必要があります。 * このプロンプトは、単純な出退勤時刻の打刻忘れチェックのみを対象とします。申請状況との照合など、より複雑なルールは含みません。 # 出力条件 * チェック結果を出力するための新しいシート "チェック結果" を作成してください。もし同名のシートが既に存在する場合は、一度そのシートを削除してから新しく作成してください。 * "チェック結果" シートの1行目に、以下の見出しを設定してください。 * A列: 日付 * B列: 氏名 * C列: エラー内容 * #回答条件 のチェック処理で見つかったエラー1件につき1行、対応する「日付」「従業員氏名」「エラー内容」を "チェック結果" シートの2行目以降に追記してください。 * もし、チェックの結果エラーが1件も見つからなかった場合は、VBAの `MsgBox` 関数を使用し、「打刻漏れはありませんでした。」というメッセージを表示して処理を終了してください。 * 生成するVBAコードには、主要な処理ブロックや、利用者が後でカスタマイズする必要がある可能性のある箇所(例:シート名、列番号、特定の文字列)について、コメントを付与してください。