プロンプト

勤怠集計マクロ(VBA)を作成する

作成者: neco.🐈‍⬛ いいね: 0 2026年02月13日 16:22

📝 プロンプトの説明

勤怠管理を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コードには、主要な処理ブロックや、利用者が後でカスタマイズする必要がある可能性のある箇所(例:シート名、列番号、特定の文字列)について、コメントを付与してください。