
Excelマクロでタイムカードの入力を簡単にしたい。
Excel初心者です。
会社のタイムカードがカレンダーのように作られているのですが、日付も曜日も出勤退勤残業時間も全て手入力のため、関数などを用いて簡単に使えるようにしたいです。
希望としては、
①何年度何月分を▼表示で選べるようにしたい。
②①を選択することで全ての曜日が自動的に変更されるようにしたい。または1日と2日の曜日を入れれば他が全て入るようにしたい。
(土日は色を変えたい)
③出勤退勤時間を〇.〇(数字ドット数字)と入れるだけで、〇:〇と表示され、残業時間を自動計算したい。
④最後に全ての合計を出せるようにしたい。
お手数おかけしますが、詳しい方、お返事お願い致します。

No.1ベストアンサー
- 回答日時:
Excelでタイムカードを作るってのは永遠の課題ですね。
先人たちによるテンプレが各種で回っているので、それを見て研究してください。テンプレ集
https://zestyoga.net/kintai/
で話を終わらせちゃうのも何なので、一応コメントします。
> ①何年度何月分を▼表示で選べるようにしたい。
入力規則を使えば簡単にできます。以下のは2013の解説ですが、ほぼどのバージョンでも共通です。
https://121ware.com/qasearch/1007/app/servlet/re …
って書いておいてからこんな話を出すのもなんですけど、私的には▼表示より手入力推奨です。と言うのは1~12月とかだとリストの縦表示が長くなるので、マウスで追っかけてクリックするのが地味に面倒に感じる場合が多いからです。ただ年月を全部打つのは面倒なため、年と月を別のセルに分けておくのがおすすめです。こうすれば普段は月だけ入れれば良いので絶対そっちの方が速いし楽です。
> ②①を選択することで全ての曜日が自動的に変更されるようにしたい。または1日と2日の曜日を入れれば他が全て入るようにしたい。
(土日は色を変えたい)
曜日はこれで出せます。
http://www.atmarkit.co.jp/ait/articles/1708/02/n …
色については条件付き書式で簡単にやれます。なんですが、じゃあ祝日の色も自動で…って考えた途端に極めて面倒になります。というのは、何日かが毎年変動する祝日があるからですね。
> ③出勤退勤時間を〇.〇(数字ドット数字)と入れるだけで、〇:〇と表示され、残業時間を自動計算したい。
ピリオド1個じゃなく2個打っても良ければ、以下の設定1個で一瞬です。
https://office-taku.com/201502/msoffice/excel/81 …
> ④最後に全ての合計を出せるようにしたい。
個々の計算ができれば、それをSUM関数なりで集計するだけです。
コメントありがとうございます。
使ったことないものばかりでわからないことばかりですが、色んな便利機能があるんですね。
少しずつ変更して使いやすくしていきたいと思います。
ありがとうございます
(^-^)
No.2
- 回答日時:
こんばんは!
①
No.1さんがおっしゃっているように、「年」と「月」に関しては手入力の方が簡単で早いと思います。
一例です。
↓の画像のような配置でカレンダーをSheet1に作成します。
今回はA1セルに「年」、C1セルに「月」の数値を手入力する方法です。
(Sheet2は参考程度で祝日も考慮するために作ってみました)
新たに祝日が追加される場合はSheet2にシリアル値で追加すれば対応できます。
②
A4セル(セルの表示形式はユーザー定義から d としておきます)に
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")
B4セルは
=TEXT(A4,"aaa")
という数式をそれぞれ入れます。
次にA4・B4セルを範囲指定したまま条件付き書式を二つ設定します。
一つ目
メニュー → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=WEEKDAY($A4)=7
という数式をいれ → 書式 → 塗りつぶしから「青」または「薄い青」を選択しOK!
同様に 新しいルール → ・・・中略・・・ → 数式欄に
=(WEEKDAY($A4)=1)+COUNTIF(Sheet2!$A:$D,$A4)
として → 書式 → 塗りつぶしから「赤」を選択しOK!
※ 条件付き書式のダイアログボックスで上側の条件が優先されますので、今回は「赤」が優先されます。
そしてA4・B4を範囲指定 → 月末の34行目まで下へフィルハンドルでコピー!
これで②はお望みの結果になるはずです。
③の前に④のE36セルは
=SUM(E4:E34)
としています。
ついでに・・・C4~E34セルの表示形式は「時刻」にしておき
E4セルに
=IF(COUNTBLANK(C4:D4),"",D4-C4)
という数式を入れE34セルまでフィル&コピー!
最後に③ですが、本来であればちゃんと 8:30 のように「コロン」を入力するのが
一番簡単で間違いがありません。
どうしても 「8.30」のように入力 → 「8:30」の実データにしたい!となると
これだけはVBAになってしまいます。
画面左下の「Sheet1」のシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
C・D列に小数点込みで数値入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
Dim myH As Long, myM As Long
If Intersect(Target, Range("C4:D34")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If IsNumeric(.Value) Then
myH = Int(.Value)
myM = .Value * 100 Mod 100
Application.EnableEvents = False
.Value = TimeSerial(myH, myM, 0)
Application.EnableEvents = True
End If
End With
End Sub '//この行まで//
これでなんとかお望みどおりにならないでしょうか?
※ 注意点 ※
分(小数点以下)を 0.60以上の数値にしてしまうとお望みの結果にならないと思います
(仮に 18.85 と入力すると 19:25 になってしまいます)
一発で解決!とはいかないと思いますが、
まずは参考程度まで!m(_ _)m

詳しく教えていただき、ありがとうございます。
関数とか複雑で難しいですが、こんなふうに便利になるんですね。
少しずつ変更していきたいと思います。ありがとうございます
(^-^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel関数で日またぎの勤務時間にしるしを立てる 2 2022/04/20 17:22
- その他(Microsoft Office) 勤務表のエクセル作成で数式を教えてください。 1 2023/01/17 03:27
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- その他(ビジネス・キャリア) 勤怠管理について(備えておくべきもの) 3 2022/09/08 10:51
- Excel(エクセル) 【Excel関数、count系】どなたか教示下さると助かります。 Excelでシフトを管理しており、 2 2022/07/09 06:34
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 関数について 4 2023/05/26 11:22
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- その他(就職・転職・働き方) 内定を3社貰って悩んでます 8 2022/08/10 04:38
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルの「0」表示について
-
エクセルの算式の保護
-
Excelで来月以降の日付のセルを...
-
【Excel】内容を変更したセルに...
-
エクセル2010 日付入力(カレ...
-
おねがいします>< エクセルで...
-
Excelで土、日、祝日の色分けが...
-
シートの保護されているシート...
-
セルの書式設定
-
エクセルのセルが縦方向にのびる
-
Excel 「折り返して全体を表示...
-
IF関数
-
EXCEL VBAでセルに入力した内容...
-
エクセルで特定のセルを表示の...
-
Excelに文字データのみを貼り付...
-
エクセルで偶数か奇数かを調べ...
-
エクセル:表示について(非表...
-
Excelの、セルの非表示を制限し...
-
エクセル カウント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルで特定のセルを表示の...
-
Excelで来月以降の日付のセルを...
-
エクセルのセルが縦方向にのびる
-
Excelで、セル内改行もそっくり...
-
Excelの条件付き書式で、計算式...
-
エクセルでセルに何も入力して...
-
エクセル 関数 セルの値が0...
-
エクセルのセルに「=A13」...
-
エクセルで文字の上に重ねがき...
-
エクセルで勝手に表示された打...
-
EXCEL:フォントがなぜか透明
-
ワードの表の中に文字を入れる...
-
セルA1とB1の数値が一致しな...
-
concatenate関数で片方のセルの...
-
横書きで縦の波線の書き方
-
【Excel】セルの中の文字の下の...
-
エクセル「折り返して全体を表...
-
おねがいします>< エクセルで...
-
条件付き書式 特定の年だけに適...
おすすめ情報